From 1e1fbe300ba2b22246c6743147087d10cf6c9798 Mon Sep 17 00:00:00 2001
From: mrDarker <mr.darker@163.com>
Date: 星期二, 15 七月 2025 17:25:05 +0800
Subject: [PATCH] 修复:InterfaceManager.cpp保存图片添加锁

---
 EdgeInspector_App/View/ViewMain_ScanImage.cpp |   93 +++++++++++++++++++---------------------------
 1 files changed, 39 insertions(+), 54 deletions(-)

diff --git a/EdgeInspector_App/View/ViewMain_ScanImage.cpp b/EdgeInspector_App/View/ViewMain_ScanImage.cpp
index 9b6af37..e616eeb 100644
--- a/EdgeInspector_App/View/ViewMain_ScanImage.cpp
+++ b/EdgeInspector_App/View/ViewMain_ScanImage.cpp
@@ -1159,8 +1159,9 @@
 
 void CViewMain_ScanImage::SaveFullImageAll()
 {
-	if(m_pGlassData == NULL || m_IV2M == NULL)
+	if (m_pGlassData == NULL || m_IV2M == NULL) {
 		return;
+	}
 
 	int				iView;
 	CPoint			ptStart;
@@ -1170,7 +1171,7 @@
 	int				iSide;
 	int				nTotalLength = 0;
 	int				nFrame = 0;
-	CGlassRecipe *pGlassRcp = m_pGlassData->GetGlassRecipe();
+	CGlassRecipe    *pGlassRcp = m_pGlassData->GetGlassRecipe();
 
 #if OFFLINE_KEY == 1
 	if (NULL == pGlassRcp) return;
@@ -1179,81 +1180,72 @@
 	CString			strRcpName = pGlassRcp->GetRecipeName();
 	CString			strGlassID = g_pBase->m_strHPanelID;
 
-	if(strGlassID.IsEmpty() == TRUE)
-	{
+	if(strGlassID.IsEmpty() == TRUE) {
 		strGlassID = _T("Manual_ID");
 	}
-	if(strRcpName.IsEmpty() == TRUE)
-	{
+	if(strRcpName.IsEmpty() == TRUE) {
 		strRcpName = _T("TestRcp");
 	}
 
 	strGlassID.Trim(_T(' '));
 
 	CTime	time = CTime::GetCurrentTime();
-
-	CString			strDate,strTime;
+	CString	strDate, strTime;
 
 	strDate.Format(_T("%04d%02d%02d"),time.GetYear(),time.GetMonth(),time.GetDay());
 	strTime.Format(_T("%02d%02d%02d"),time.GetHour(),time.GetMinute(),time.GetSecond());
 
-	for(iView=0;iView<MAX_DIMENSION_COUNT;iView++)
-	{
+	for(iView=0;iView<MAX_DIMENSION_COUNT;iView++) {
 		iSide  = GetSideIdx(iView);		
 
-		int			iCam = m_pHardware->GetCameraIndexToDimension((DimensionDir)iSide);
-		int			iScan = m_pHardware->GetScanToDimension((DimensionDir)iSide);
+		int	iCam = m_pHardware->GetCameraIndexToDimension((DimensionDir)iSide);
+		int	iScan = m_pHardware->GetScanToDimension((DimensionDir)iSide);
 
 		CCameraSettings *pCamera = m_pHardware->GetCameraSettings(iCam,iScan);
-		if(pCamera == NULL)
+		if (pCamera == NULL) {
 			return;
+		}
 
 		nTotalLength = (pCamera->m_nGrabFrameCount-1)*pCamera->m_FrameSize.cy;
-		//nFrame = nTotalLength/nOneFrameSize;
 
 		ptStart.x = 0;
-		ptStart.y =  max(0,0);
+		ptStart.y = max(0,0);
 
-		int			nMaxSize = (pCamera->m_nGrabFrameCount-1)*pCamera->m_FrameSize.cy;
+		int	nMaxSize = (pCamera->m_nGrabFrameCount-1)*pCamera->m_FrameSize.cy;
 
 		CSide_Data* pSideData = m_pGlassData->GetSideData((DimensionDir)iSide);
-		if(pSideData != NULL)
-		{
+		if(pSideData != NULL) {
 			ptStart.y = max(0,pSideData->m_nGlassStartLine-1000);
-
 			nTotalLength = min((int)((pSideData->m_nPreGlassEndLine + 1000) - ptStart.y),nMaxSize);
 		}	
 
-		if(nTotalLength < 10000)
+		if (nTotalLength < 10000) {
 			nTotalLength = nMaxSize;
+		}
 
-		nFrame = nTotalLength/nOneFrameSize;
-		if(ptStart.y < 0)
+		nFrame = nTotalLength / nOneFrameSize;
+		if (ptStart.y < 0) {
 			ptStart.y = 0;
-		
-		for(int i = 0; i < nFrame ; i++)
-		{
+		}
+
+		for(int i = 0; i < nFrame ; i++) {
 			nLength = nOneFrameSize;
 
-			if(ptStart.y+nLength >= nMaxSize)
+			if (ptStart.y + nLength >= nMaxSize) {
 				continue;
+			}
 
 			strPath.Format(_T("%s\\DebugFullImage\\%s\\%s\\%s\\%s\\%s__%s_%d"),PATH_INSPECTION_DATA,strDate,strRcpName,strGlassID,strTime,strGlassID,PANEL_SIDE[iSide],i);
-
 			m_IV2M->IV2M_SaveFullImage(strPath,iSide,ptStart,nLength);		
-
 			g_pLog->DisplayMessage(_T("%s %d Save Completed : %s"),PANEL_SIDE[iSide],i,strPath);
 
 			ptStart.y += nLength; 
 		}
 
 		nLength = nTotalLength%nOneFrameSize;
-		if(nLength > 10)
-		{		
-			if(ptStart.y+nLength < nMaxSize)
-			{
+		if(nLength > 10) {		
+			if(ptStart.y+nLength < nMaxSize) {
 				strPath.Format(_T("%s\\DebugFullImage\\%s\\%s\\%s\\%s\\%s__%s_%d"),PATH_INSPECTION_DATA,strDate,strRcpName,strGlassID,strTime,strGlassID,PANEL_SIDE[iSide],nFrame);		
-
 				m_IV2M->IV2M_SaveFullImage(strPath,iSide,ptStart,nLength);		
 			}			
 		}
@@ -1272,18 +1264,20 @@
 	int nTotalLength = 0;
 	int nFrame = 0;
 
-	if(m_pGlassData == NULL || m_IV2M == NULL)
+	if (m_pGlassData == NULL || m_IV2M == NULL) {
 		return;
-	
+	}
+
 	CGlassRecipe *pGlassRcp = m_pGlassData->GetGlassRecipe();
 	CString		strRcpName = pGlassRcp->GetRecipeName();
 
-	int			iCam = m_pHardware->GetCameraIndexToDimension((DimensionDir)iSide);
-	int			iScan = m_pHardware->GetScanToDimension((DimensionDir)iSide);
+	int	iCam = m_pHardware->GetCameraIndexToDimension((DimensionDir)iSide);
+	int	iScan = m_pHardware->GetScanToDimension((DimensionDir)iSide);
 
 	CCameraSettings *pCamera = m_pHardware->GetCameraSettings(iCam,iScan);
-	if(pCamera == NULL)
+	if (pCamera == NULL) {
 		return;
+	}
 
 	nTotalLength = pCamera->m_nGrabFrameCount*pCamera->m_FrameSize.cy;
 	nFrame = nTotalLength/nOneFrameSize;
@@ -1292,35 +1286,30 @@
 	ptStart.y =  max(0,0);
 
 	CSide_Data *pSideData = m_pGlassData->GetSideData((DimensionDir)iSide);
-	if(pSideData != NULL)
-	{
+	if(pSideData != NULL) {
 		ptStart.y = max(0,pSideData->m_nGlassStartLine-1000);
 
 		nTotalLength = min((pSideData->m_nGlassEndLine + 1000) - ptStart.y,pCamera->m_nGrabFrameCount*pCamera->m_FrameSize.cy);
 	}	
 	
 	CString			strGlassID = g_pBase->m_strHPanelID;
-	if(strGlassID.IsEmpty() == TRUE)
-	{
+	if(strGlassID.IsEmpty() == TRUE) {
 		strGlassID = _T("Manual_ID");
 	}
 
-	if(strRcpName.IsEmpty() == TRUE)
-	{
+	if(strRcpName.IsEmpty() == TRUE) {
 		strRcpName = _T("TestRcp");
 	}
 
 	strGlassID.Trim(_T(' '));
 
 	CTime	time = CTime::GetCurrentTime();
-
-	CString			strDate,strTime;
+	CString	strDate,strTime;
 
 	strDate.Format(_T("%04d%02d%02d"),time.GetYear(),time.GetMonth(),time.GetDay());
 	strTime.Format(_T("%02d%02d%02d"),time.GetHour(),time.GetMinute(),time.GetSecond());
 
-	for(int i = 0; i < nFrame ; i++)
-	{
+	for(int i = 0; i < nFrame ; i++) {
 		nLength = nOneFrameSize;
 	
 		strPath.Format(_T("%s\\DebugFullImage\\%s\\%s\\%s\\%s\\%s__%s_%d"),PATH_INSPECTION_DATA,strDate,strRcpName,strGlassID,strTime,strGlassID,PANEL_SIDE[iSide],i);
@@ -1331,18 +1320,14 @@
 		g_pLog->DisplayMessage(_T("%s %d Save Completed : %s"),PANEL_SIDE[iSide],i,strPath);
 	}
 
-	
-	nLength = nTotalLength%nOneFrameSize;
-	if(nLength)
-	{		
+	nLength = nTotalLength % nOneFrameSize;
+	if(nLength) {		
 		strPath.Format(_T("%s\\DebugFullImage\\%s\\%s\\%s\\%s\\%s__%s_%d"),PATH_INSPECTION_DATA,strDate,strRcpName,strGlassID,strTime,strGlassID,PANEL_SIDE[iSide],nFrame);		
 
 		m_IV2M->IV2M_SaveFullImage(strPath,iSide,ptStart,nLength);		
 
 		g_pLog->DisplayMessage(_T("%s %d Save Completed : %s"),PANEL_SIDE[iSide],nFrame,strPath);
 	}
-
-
 }
 
 UINT CViewMain_ScanImage::ManualProcessAll(LPVOID pParam)

--
Gitblit v1.9.3