From 12fc574703adc0528a7e905540dbd1ba26015c37 Mon Sep 17 00:00:00 2001
From: LWQ <1806950222@qq.com>
Date: 星期三, 13 八月 2025 19:17:42 +0800
Subject: [PATCH] Merge branch 'side_inspection' of https://soft.boounion.cn/r/~liuyang/MiniLED_ADM into side_inspection

---
 EdgeInspector_App/Process/InspectCamera.cpp |   85 ++++++++++++++----------------------------
 1 files changed, 28 insertions(+), 57 deletions(-)

diff --git a/EdgeInspector_App/Process/InspectCamera.cpp b/EdgeInspector_App/Process/InspectCamera.cpp
index 885b18b..6c24e10 100644
--- a/EdgeInspector_App/Process/InspectCamera.cpp
+++ b/EdgeInspector_App/Process/InspectCamera.cpp
@@ -182,38 +182,24 @@
 	iScan = m_iScan;
 
 	stFrameIndex stFrame;
-
 	stFrame.nScanIdx = m_iScan;
 
-	if (m_bFindGlassStart[stFrame.nScanIdx] == TRUE)
+	if (m_bFindGlassStart[stFrame.nScanIdx] == TRUE) {
 		return ERR_FINDGLASSSTART_SUCCESS;
+	}
 
-	// 鞛愲彊鞚茧晫 頂勲爤鞛� 靾橂ゼ 於╇秳頌� 鞛§溂氅� 氍胳牅臧� 鞎堧悩電旉卑 臧欕嫟毵�... 頂勲爤鞛� 靾橁皜 攵�臁表晿氅� 鞐赴靹� 氍错暅鞙茧 瓯鸽.. 攴鸽Μ瓿� 鞁滌瀾靹� 彀眷晿鞙茧┐ 攴鸽儱 雱橃柎臧�氅� 霅橃 鞎婋倶?
-	if (m_pGrabber->GetGrabFrameCount() < 1)
-	{
+	if (m_pGrabber->GetGrabFrameCount() < 1 || iThread != 0) {
 		Sleep(0);
 		return ERR_FINDGLASSSTART_FAIL;
 	}
 
-	/*
-	stFrameIndex stFrame;
-
-	stFrame.nScanIdx = m_iScan;
-
-	if(m_bFindGlassStart[stFrame.nScanIdx] == TRUE)
-		return ERR_FINDGLASSSTART_SUCCESS;
-	*/
-
-	if (iThread != 0)
-		return ERR_FINDGLASSSTART_FAIL;
-
 	DimensionDir emDim = GetDimension(stFrame.nScanIdx);
-
 	iScan = stFrame.nScanIdx;
 
-	if (FindGlassStartLine(emDim, stFrame) == TRUE)
-	{
-		g_pLog->DisplayMessage(_T("Find Start Line Success!"));
+	g_pLog->DisplayMessage(_T("%s Is Glass Start Line!"), PANEL_SIDE[emDim]);
+
+	if (FindGlassStartLine(emDim, stFrame) == TRUE) {
+		g_pLog->DisplayMessage(_T("%s Find Start Line Success!"), PANEL_SIDE[emDim]);
 
 		ScanRegionSet(stFrame);
 		m_bFindGlassStart[stFrame.nScanIdx] = TRUE;
@@ -222,15 +208,15 @@
 		m_MsgJob.nDispLine = 0;
 		m_MsgJob.nSide = (int)emDim;
 		CSide_Data* pSideData = m_pGlassData->GetSideData(emDim);
-		if (pSideData != NULL)
+		if (pSideData != NULL) {
 			m_MsgJob.nDispLine = pSideData->m_nGlassStartLine;
+		}
 
 		::SendMessage(m_hWndViewScan, WM_POCESS_STATUS, (WPARAM)&m_MsgJob, (int)emDim);
 
 		return ERR_FINDGLASSSTART_SUCCESS;
 	}
-	else
-	{
+	else {
 		return ERR_FINDGLASSSTART_FIND_FAIL;
 	}
 
@@ -883,7 +869,7 @@
 	CSingleLock myLoc(&m_csThreadEnd);
 	myLoc.Lock();
 
-	int        iScan = stFrame.nScanIdx;
+	int iScan = stFrame.nScanIdx;
 	if (m_iThreadEnd[iScan][iThread] == 1) {
 		myLoc.Unlock();
 		return FALSE;
@@ -913,6 +899,11 @@
 			if (m_pII2S != NULL) {
 				m_pII2S->II2S_InspectionEnd(m_iCamera, iScan);
 			}
+
+			// Save the image as one image
+			//CString strFileName;
+			//strFileName.Format(_T("D:\\Dump\\%s.tif"), PANEL_SIDE[emDim]);
+			//m_pGrabber->DumpBufferAsOneImage(iScan, strFileName);
 		}
 	}
 
@@ -1292,7 +1283,7 @@
 	if (pSideData == NULL)
 		return FALSE;
 
-	if (g_pStatus->GetGrabFrameCount(stFrame.nScanIdx) - 1 <= stFrame.nFrameIdx)
+	if (g_pStatus->GetGrabFrameCount(m_iCamera, stFrame.nScanIdx) - 1 <= stFrame.nFrameIdx)
 		return TRUE;
 
 	if (pSideData->m_nPreGlassEndFrame + MAX_THREAD <= stFrame.nFrameIdx)
@@ -1307,8 +1298,6 @@
 
 void CInspectCamera::ScanRegionSet(stFrameIndex stFrame)
 {
-	g_pLog->DisplayMessage(_T("Scan Region Set"));
-
 	SetGrabEnd(stFrame.nScanIdx);
 }
 
@@ -1798,12 +1787,6 @@
 	if (pSideData->m_bTopCorner_Find == TRUE) {
 		localLock.Unlock();
 		return TRUE;
-	}
-
-	BOOL bTopCornerUse = (BOOL)(m_pRecipe->m_SideParam[emDim].m_nTopCornerShape == 0) ? FALSE : TRUE;
-	if (bTopCornerUse == FALSE) {
-		localLock.Unlock();
-		return FALSE;
 	}
 
 	double dCornerSizeY_Um = (double)m_pRecipe->m_SideParam[emDim].m_nTopCornerSizeY_um;
@@ -2415,12 +2398,6 @@
 	if (pSideData->m_bBotCorner_Find == TRUE) {
 		localLock.Unlock();
 		return TRUE;
-	}
-
-	BOOL bBotCornerUse = (BOOL)(m_pRecipe->m_SideParam[emDim].m_nBottomCornerShape == 0) ? FALSE : TRUE;
-	if (bBotCornerUse == FALSE) {
-		localLock.Unlock();
-		return FALSE;
 	}
 
 	double dCornerSizeY_Um = (double)m_pRecipe->m_SideParam[emDim].m_nBottomCornerSizeY_um;
@@ -6446,14 +6423,11 @@
 	m_pRecipe = pRecipe;
 	m_pHardparm = pHW;
 
-	if (m_pGrabber != NULL)
-	{
+	if (m_pGrabber != NULL) {
 		m_pGrabber->ClearGrabIdx();
-		//m_pGrabber->ClearBuffer();
 	}
 
-	if (m_pDefectControl != NULL)
-	{
+	if (m_pDefectControl != NULL) {
 		m_pDefectControl->SetHWRecipe(pHW);
 		m_pDefectControl->ResetDefectControl();
 	}
@@ -6496,33 +6470,30 @@
 
 void CInspectCamera::SetGrabEnd(int iScan)
 {
-	g_pLog->DisplayMessage(_T("Set Grab End"));
-
 	CCameraSettings* pCamera = m_pHardparm->GetCameraSettings(m_iCamera, iScan);
-
-	if (pCamera == NULL)
-	{
+	if (pCamera == NULL) {
 		g_pLog->DisplayMessage(_T("Camera Setting NULL"));
 		return;
 	}
 
-	DimensionDir		emDim = pCamera->m_eDimension;
+	DimensionDir emDim = pCamera->m_eDimension;
 	CSide_Data* pSideData = m_pGlassData->GetSideData(emDim);
-	if (pSideData == NULL)
+	if (pSideData == NULL) {
 		return;
+	}
 
-	int		nStageNo = g_pBase->m_nStageNo;
+	g_pLog->DisplayMessage(_T("%s Set Grab End"), PANEL_SIDE[emDim]);
 
-	if (nStageNo < 0 || nStageNo > 1)
+	int nStageNo = g_pBase->m_nStageNo;
+	if (nStageNo < 0 || nStageNo > 1) {
 		nStageNo = 0;
+	}
 
 	int	nGlassSize = (int)(((double)m_pRecipe->m_SideParam[(int)emDim].m_nSidePanelSize_um) / pCamera->m_dScanResolution[nStageNo]);
-
 	pSideData->m_nPreGlassEndLine = pSideData->m_nGlassStartLine + nGlassSize;
 	pSideData->m_nPreGlassEndFrame = pSideData->m_nPreGlassEndLine / pCamera->m_FrameSize.cy;
 
-	g_pStatus->SetGrabFrametoScan(iScan, pSideData->m_nPreGlassEndFrame + 5);
-
+	g_pStatus->SetGrabFrametoScan(m_iCamera, iScan, pSideData->m_nPreGlassEndFrame + 5);
 	g_pLog->DisplayMessage(_T("%s Scan %d : Set Grab EndFrame - GlassEnd %d, Frame %d, GrabBuf %d"), PANEL_SIDE[emDim], iScan, pSideData->m_nPreGlassEndLine, pSideData->m_nPreGlassEndFrame, pSideData->m_nPreGlassEndFrame + 5);
 }
 

--
Gitblit v1.9.3