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