From 1e751a5eb3c23d932b5de94456b5a8741f28c7cc Mon Sep 17 00:00:00 2001
From: mrDarker <mr.darker@163.com>
Date: 星期六, 16 八月 2025 17:37:49 +0800
Subject: [PATCH] 1. 修复离线测试设置错误的扫描个数,应该设置的是需要扫描的个数(非相机个数)

---
 EdgeInspector_App/Grabber/SoliosControl.cpp |   27 +++++++++++++++------------
 1 files changed, 15 insertions(+), 12 deletions(-)

diff --git a/EdgeInspector_App/Grabber/SoliosControl.cpp b/EdgeInspector_App/Grabber/SoliosControl.cpp
index e560cad..5a4f9dc 100644
--- a/EdgeInspector_App/Grabber/SoliosControl.cpp
+++ b/EdgeInspector_App/Grabber/SoliosControl.cpp
@@ -1,4 +1,4 @@
-#include "StdAfx.h"
+锘�#include "StdAfx.h"
 #include "SoliosControl.h"
 #include "FrameBufferController.h"
 
@@ -330,7 +330,7 @@
 	if (nYStart + nYSize > nBufSizeY* GetEndFrameIdx())
 		return FALSE;
 	
-	// 矫累 橇饭烙 锅龋客 场 橇饭烙 锅龋.
+	// 鐭疮 姗囬キ鐑� 閿呴緥瀹� 鍦� 姗囬キ鐑� 閿呴緥.
 	int nStartFrameNo = nYStart / nBufSizeY;
 	int nEndFrameNo = (nYStart + nYSize) / nBufSizeY;
 	LPBYTE	lpHeadAddr = GetFrameHeader(iScan,nStartFrameNo);
@@ -346,7 +346,7 @@
 		memcpy(lpIn + i * nXSize, lpStart + nLine * nBufSizeX, nXSize);
 		if (nStartFrameNo <= nEndFrameNo && (nYStart + i + 1) % nBufSizeY  == 0)
 		{
-			// 捞固瘤甫 蝶郴具窍绰 康开捞 MemFrameNo 版拌俊 吧媚乐绰 版快 贸府.
+			// 鎹炲浐鐦ょ敨 铦堕兇鍏风獚缁� 搴峰紑鎹� MemFrameNo 鐗堟媽淇� 鍚у獨涔愮话 鐗堝揩 璐稿簻.
 			lpHeadAddr = GetFrameHeader(iScan,++nStartFrameNo);
 			lpStart = lpHeadAddr + nXStart;
 			nLine = 0;
@@ -383,18 +383,19 @@
 	m_nEndFrameIdx++;			//Count
 	m_nSetBufferIdx++;		//index
 
-	if (m_nEndFrameIdx > g_pStatus->GetGrabFrameCount(m_nScanIndex))
+	int nCameraIdx = m_Param.nCameraIdx;
+	if (m_nEndFrameIdx > g_pStatus->GetGrabFrameCount(nCameraIdx, m_nScanIndex))
 	{
 		GrabScanStop();		
-		g_pStatus->SetGrabEnd(m_nScanIndex);
-		g_pLog->DisplayMessage(_T("%d Over Grab Count : Stop Grab[%d][%d] - %d"), m_Param.nBoardIdx, m_nScanIndex, m_nEndFrameIdx,g_pStatus->GetGrabFrameCount(m_nScanIndex));
+		g_pStatus->SetGrabEnd(nCameraIdx, m_nScanIndex);
+		g_pLog->DisplayMessage(_T("%d Over Grab Count : Stop Grab[%d][%d] - %d"), m_Param.nBoardIdx, m_nScanIndex, m_nEndFrameIdx,g_pStatus->GetGrabFrameCount(nCameraIdx, m_nScanIndex));
 		return TRUE;
 	}
 
 	if (m_nSetBufferIdx > m_pFrameBuffer->GetFrameCount())
 	{
 		GrabScanStop();		
-		g_pStatus->SetGrabEnd(m_nScanIndex);
+		g_pStatus->SetGrabEnd(nCameraIdx, m_nScanIndex);
 		g_pLog->DisplayMessage(_T("%d Over Grab Buffer Stop Grab[%d][%d] - %d"), m_Param.nBoardIdx, m_nScanIndex, m_nEndFrameIdx,m_pFrameBuffer->GetFrameCount());
 		return TRUE;
 	}
@@ -403,7 +404,7 @@
 	if(pBuffer == NULL)
 	{
 		GrabScanStop();		
-		g_pStatus->SetGrabEnd(m_nScanIndex);
+		g_pStatus->SetGrabEnd(nCameraIdx, m_nScanIndex);
 		g_pLog->DisplayMessage(_T("%d Over Grab Buffer Stop Grab[%d][%d] - %d"), m_Param.nBoardIdx, m_nScanIndex, m_nEndFrameIdx,m_pFrameBuffer->GetFrameCount());
 		return TRUE;
 	}
@@ -438,15 +439,17 @@
 
 	CGrabberSolios	*pRadient = (CGrabberSolios*)HookDataPtr;
 
-	if(pRadient->m_isLiveGrab == TRUE)		// Live Grab 矫.
+
+	if(pRadient->m_isLiveGrab == TRUE)		// Live Grab 鐭�.
 	{
 		pRadient->m_nSetBufferIdx = 0;
+		int nCameraIdx = pRadient->m_Param.nCameraIdx;
 
-		LPBYTE		pBuffer = pRadient->m_pFrameBuffer->GetFrameBuferHeader(pRadient->m_nScanIndex,pRadient->m_nSetBufferIdx);
+		LPBYTE pBuffer = pRadient->m_pFrameBuffer->GetFrameBuferHeader(pRadient->m_nScanIndex,pRadient->m_nSetBufferIdx);
 		if(pBuffer == NULL)
 		{
 			pRadient->GrabScanStop();		
-			g_pStatus->SetGrabEnd(pRadient->m_nScanIndex);
+			g_pStatus->SetGrabEnd(nCameraIdx, pRadient->m_nScanIndex);
 			g_pLog->DisplayMessage(_T("%d Over Grab Buffer Stop Grab[%d][%d] - %d"), pRadient->m_Param.nBoardIdx, pRadient->m_nScanIndex, pRadient->m_nEndFrameIdx,pRadient->m_pFrameBuffer->GetFrameCount());
 			return TRUE;
 		}
@@ -611,7 +614,7 @@
 		/*
 		MdigControl(m_MilDigitizer, M_CAMERALINK_CC1_SOURCE, M_GRAB_EXPOSURE+M_TIMER1);
 		MdigControl(m_MilDigitizer, M_GRAB_EXPOSURE+M_TIMER1, M_ENABLE);
-		MdigControl(m_MilDigitizer, M_GRAB_EXPOSURE_SOURCE+M_TIMER1, M_CONTINUOUS);                      // Periodic 脚龋 牢啊
+		MdigControl(m_MilDigitizer, M_GRAB_EXPOSURE_SOURCE+M_TIMER1, M_CONTINUOUS);                      // Periodic 鑴氶緥 鐗㈠晩
 		MdigControl(m_MilDigitizer, M_GRAB_EXPOSURE_TIME+M_TIMER1, nExposureTimer);                        //10000ns
 		MdigControl(m_MilDigitizer, M_GRAB_EXPOSURE_TIME_DELAY+M_TIMER1,  nExposureTimerDelay);                 //10000ns	
 		*/

--
Gitblit v1.9.3