From 2379434200219132ee252f12d47a1e5efd160f42 Mon Sep 17 00:00:00 2001
From: mrDarker <mr.darker@163.com>
Date: 星期三, 06 八月 2025 15:32:44 +0800
Subject: [PATCH] 1. 实时扫描界面新添两个相机(侧面检)

---
 EdgeInspector_App/View/ViewMain_LiveCam.cpp |  172 ++++++++++++++++++++++++++-------------------------------
 1 files changed, 78 insertions(+), 94 deletions(-)

diff --git a/EdgeInspector_App/View/ViewMain_LiveCam.cpp b/EdgeInspector_App/View/ViewMain_LiveCam.cpp
index d3b6ac5..9348880 100644
--- a/EdgeInspector_App/View/ViewMain_LiveCam.cpp
+++ b/EdgeInspector_App/View/ViewMain_LiveCam.cpp
@@ -17,8 +17,7 @@
 	m_IV2M = NULL;
 	m_pGlassData = NULL;
 	m_pHardware = NULL;
-	for(int i=0;i<MAX_CAMERA_COUNT;i++)
-	{
+	for (int i = 0; i < MAX_CAMERA_COUNT; i++) {
 		m_dZoom[i] = 1;
 	}
 }
@@ -29,16 +28,18 @@
 
 void CViewMain_LiveCam::DoDataExchange(CDataExchange* pDX)
 {
-	DDX_Control(pDX, IDC_SCROLLBAR1			, m_ctrlScrollH[0]);
-	DDX_Control(pDX, IDC_SCROLLBAR2			, m_ctrlScrollH[1]);
-	DDX_Control(pDX, IDC_SCROLLBAR3			, m_ctrlScrollH[2]);
-	DDX_Control(pDX, IDC_SCROLLBAR4			, m_ctrlScrollH[3]);
+	DDX_Control(pDX, IDC_SCROLLBAR1, m_ctrlScrollH[0]);
+	DDX_Control(pDX, IDC_SCROLLBAR2, m_ctrlScrollH[1]);
+	DDX_Control(pDX, IDC_SCROLLBAR3, m_ctrlScrollH[2]);
+	DDX_Control(pDX, IDC_SCROLLBAR4, m_ctrlScrollH[3]);
+	DDX_Control(pDX, IDC_SCROLLBAR5, m_ctrlScrollH[4]);
+	DDX_Control(pDX, IDC_SCROLLBAR6, m_ctrlScrollH[5]);
 
 	CDialogEx::DoDataExchange(pDX);
 }
 		
 BEGIN_MESSAGE_MAP(CViewMain_LiveCam, CDialogEx)
-	ON_MESSAGE(WM_LIVE_IMG_UPDATE	, OnLiveImgUpDate)
+	ON_MESSAGE(WM_LIVE_IMG_UPDATE, OnLiveImgUpDate)
 	ON_WM_HSCROLL()
 	ON_WM_TIMER()
 	ON_WM_MOUSEWHEEL()	
@@ -55,10 +56,8 @@
 // CViewLiveCam 鐨嬬煫鐦� 璐稿簻鎵佹稘鑱績.
 int  CViewMain_LiveCam::GetIndex(int nSide)
 {
-	int  nIndex = 0;
-
-	if(m_pHardware != NULL)
-	{
+	int nIndex = 0;
+	if(m_pHardware != NULL) {
 		nIndex = m_pHardware->GetCameraIndexToDimension((DimensionDir)nSide);
 	}
 
@@ -69,17 +68,23 @@
 {
 	m_pHardware = pHW;
 
-	int nSide,i;
-	LPBYTE		plpBuf = NULL;
-	for(i = 0 ; i < 4 ; i++)
-	{
+	int nSide, i;
+	LPBYTE plpBuf = NULL;
+	for(i = 0 ; i < 6 ; i++) {
 		nSide = LiveGetSideIdx(i);
 
 		m_frameImg[i].SetSide(nSide);
 
 		plpBuf = NULL;
-		if(m_IV2M != NULL)
-			plpBuf = m_IV2M->IV2M_GetGrabBufferByDimension((DimensionDir)nSide,0);
+		if (m_IV2M != NULL) {
+			plpBuf = m_IV2M->IV2M_GetGrabBufferByDimension((DimensionDir)nSide, 0);
+		}
+
+		CCameraSettings* pCamera = m_pHardware->GetCameraSettings(i, 0);
+		if (pCamera != nullptr) {
+			m_frameImg[i].SetImgSize(pCamera->m_FrameSize.cx, pCamera->m_FrameSize.cy);
+		}
+
 		m_frameImg[i].SetImage(plpBuf);
 		m_frameImg[i].SetGlassData(m_pGlassData);	
 	}
@@ -89,21 +94,19 @@
 {	
 	UpdateData(FALSE);
 
-	CRect rc[4];
-	int i =0;
-
-
+	CRect rc[6];
 	GetDlgItem(IDC_STATIC_CAM1)->GetWindowRect(rc[0]);
 	GetDlgItem(IDC_STATIC_CAM2)->GetWindowRect(rc[1]);
 	GetDlgItem(IDC_STATIC_CAM3)->GetWindowRect(rc[2]);
 	GetDlgItem(IDC_STATIC_CAM4)->GetWindowRect(rc[3]);
+	GetDlgItem(IDC_STATIC_CAM5)->GetWindowRect(rc[4]);
+	GetDlgItem(IDC_STATIC_CAM6)->GetWindowRect(rc[5]);
 		
-	for(i = 0 ; i < 4 ; i++)
-	{
-		ScreenToClient(rc[i]);		
+	for (int i = 0; i < 6; i++) {
+		ScreenToClient(rc[i]);
 		m_frameImg[i].InitBitMap();
-		
-		m_frameImg[i].Create(NULL,NULL,WS_VISIBLE | WS_CHILD,rc[i],this,0);			
+
+		m_frameImg[i].Create(NULL, NULL, WS_VISIBLE | WS_CHILD, rc[i], this, 0);
 
 		m_dZoom[i] = 1;
 		m_frameImg[i].SetZommMode(m_dZoom[i]);
@@ -116,28 +119,25 @@
 
 int CViewMain_LiveCam::LiveGetSideIdx(int nViewIndex)
 {
-	if(m_pHardware == NULL)
+	if (m_pHardware == nullptr) {
 		return 0;
-		
-	CCameraSettings *pCamera = NULL;
-
-	pCamera = m_pHardware->GetCameraSettings(nViewIndex,0);
-	if(pCamera == NULL)
+	}
+	
+	CCameraSettings* pCamera = m_pHardware->GetCameraSettings(nViewIndex, 0);
+	if (pCamera == nullptr) {
 		return 0;
+	}
 
 	return (int)pCamera->m_eDimension;
 }
 
 BOOL CViewMain_LiveCam::PreTranslateMessage(MSG* pMsg)
 {
-	if( pMsg->message == WM_KEYDOWN )
-	{
-		if(pMsg->wParam == VK_RETURN
-			|| pMsg->wParam == VK_ESCAPE )
-		{
+	if( pMsg->message == WM_KEYDOWN ) {
+		if(pMsg->wParam == VK_RETURN || pMsg->wParam == VK_ESCAPE) {
 			::TranslateMessage(pMsg);
 			::DispatchMessage(pMsg);
-			return TRUE;                    // DO NOT process further
+			return TRUE;
 		}
 	}
 
@@ -149,17 +149,17 @@
 	OnBnClickedBtnStop();
 	
 	int nDisplayFrame = 0;
-	if(m_nRdoSignal == 0)
-	{
+	if(m_nRdoSignal == 0) {
 		nDisplayFrame = 20;
 	}	
 
-	if(m_IV2M != NULL)
-	{
-		m_IV2M->IV2M_SetLiveGrabCommand((DimensionDir)LiveGetSideIdx(0),FALSE);
-		m_IV2M->IV2M_SetLiveGrabCommand((DimensionDir)LiveGetSideIdx(1),FALSE);
-		m_IV2M->IV2M_SetLiveGrabCommand((DimensionDir)LiveGetSideIdx(2),FALSE);
-		m_IV2M->IV2M_SetLiveGrabCommand((DimensionDir)LiveGetSideIdx(3),FALSE);
+	if(m_IV2M != NULL) {
+		m_IV2M->IV2M_SetLiveGrabCommand((DimensionDir)LiveGetSideIdx(0), FALSE);
+		m_IV2M->IV2M_SetLiveGrabCommand((DimensionDir)LiveGetSideIdx(1), FALSE);
+		m_IV2M->IV2M_SetLiveGrabCommand((DimensionDir)LiveGetSideIdx(2), FALSE);
+		m_IV2M->IV2M_SetLiveGrabCommand((DimensionDir)LiveGetSideIdx(3), FALSE);
+		m_IV2M->IV2M_SetLiveGrabCommand((DimensionDir)LiveGetSideIdx(4), FALSE);
+		m_IV2M->IV2M_SetLiveGrabCommand((DimensionDir)LiveGetSideIdx(5), FALSE);
 	}
 
 	SetTimer(1,100,NULL);	
@@ -167,8 +167,7 @@
 
 void CViewMain_LiveCam::OnTimer(UINT_PTR nIDEvent)
 {
-	for(int i = 0 ; i < 4 ; i++)
-	{
+	for(int i = 0 ; i < 6 ; i++) {
 		m_frameImg[i].ViewUpdate();
 	}
 
@@ -177,12 +176,13 @@
 
 void CViewMain_LiveCam::OnBnClickedBtnStop()
 {
-	if(m_IV2M != NULL)
-	{
-		m_IV2M->IV2M_SetLiveGrabCommand((DimensionDir)LiveGetSideIdx(0),TRUE);
-		m_IV2M->IV2M_SetLiveGrabCommand((DimensionDir)LiveGetSideIdx(1),TRUE);
-		m_IV2M->IV2M_SetLiveGrabCommand((DimensionDir)LiveGetSideIdx(2),TRUE);
-		m_IV2M->IV2M_SetLiveGrabCommand((DimensionDir)LiveGetSideIdx(3),TRUE);
+	if(m_IV2M != NULL) {
+		m_IV2M->IV2M_SetLiveGrabCommand((DimensionDir)LiveGetSideIdx(0), TRUE);
+		m_IV2M->IV2M_SetLiveGrabCommand((DimensionDir)LiveGetSideIdx(1), TRUE);
+		m_IV2M->IV2M_SetLiveGrabCommand((DimensionDir)LiveGetSideIdx(2), TRUE);
+		m_IV2M->IV2M_SetLiveGrabCommand((DimensionDir)LiveGetSideIdx(3), TRUE);
+		m_IV2M->IV2M_SetLiveGrabCommand((DimensionDir)LiveGetSideIdx(4), TRUE);
+		m_IV2M->IV2M_SetLiveGrabCommand((DimensionDir)LiveGetSideIdx(5), TRUE);
 	}
 	
 	KillTimer(1);
@@ -193,30 +193,29 @@
 	// TODO: 鍜墎淇� 鐨嬬煫鐦� 璐稿簻鎵� 鍐呴潧鐢� 鐪犲晩 妫�/鑲氱话 鎵佸く钄奸槕 榫嬪厤閽﹁仾淇�.
 
 	int nIndex;
-
-	if(pScrollBar->m_hWnd		== m_ctrlScrollH[0].m_hWnd)
-	{
+	if(pScrollBar->m_hWnd		== m_ctrlScrollH[0].m_hWnd) {
 		nIndex = 0;
 	}
-	else if(pScrollBar->m_hWnd	== m_ctrlScrollH[1].m_hWnd)
-	{
+	else if(pScrollBar->m_hWnd	== m_ctrlScrollH[1].m_hWnd) {
 		nIndex = 1;
 	}
-	else if(pScrollBar->m_hWnd	== m_ctrlScrollH[2].m_hWnd)
-	{
+	else if(pScrollBar->m_hWnd	== m_ctrlScrollH[2].m_hWnd) {
 		nIndex = 2;
 	}
-	else if(pScrollBar->m_hWnd	== m_ctrlScrollH[3].m_hWnd)
-	{
+	else if(pScrollBar->m_hWnd	== m_ctrlScrollH[3].m_hWnd) {
 		nIndex = 3;
 	}
-
-
-	if(nIndex != -1)
-	{
+	else if (pScrollBar->m_hWnd == m_ctrlScrollH[4].m_hWnd) {
+		nIndex = 4;
+	}
+	else if (pScrollBar->m_hWnd == m_ctrlScrollH[5].m_hWnd) {
+		nIndex = 5;
+	}
+	
+	if(nIndex != -1) {
 		SCROLLINFO si;
-		si.fMask=SIF_ALL;
-		m_ctrlScrollH[nIndex].GetScrollInfo(&si,SIF_ALL);
+		si.fMask = SIF_ALL;
+		m_ctrlScrollH[nIndex].GetScrollInfo(&si, SIF_ALL);
 
 		switch(nSBCode)
 		{
@@ -244,41 +243,34 @@
 
 		m_frameImg[nIndex].m_ptOrg.x = si.nPos;
 		
-		PostMessage(WM_LIVE_IMG_UPDATE,NULL,nIndex);
-
+		PostMessage(WM_LIVE_IMG_UPDATE, NULL, nIndex);
 	}
 	CDialogEx::OnHScroll(nSBCode, nPos, pScrollBar);
 }
 
 void CViewMain_LiveCam::InitScrollInfo(int nCam /*= -1*/)
 {
-	int i =0;
+	int i = 0;
 	SCROLLINFO scrollInfoH;
-
 	scrollInfoH.cbSize		= sizeof(SCROLLINFO);
 	scrollInfoH.fMask		= SIF_ALL;
 	scrollInfoH.nMin		= 1;
 	scrollInfoH.nPos		= 1;
 	scrollInfoH.nTrackPos	= 64;
-
-
 	scrollInfoH.nMax	= IMAGE_WIDTH;	
 
-	if(nCam == -1)
-	{
-		for(i = 0 ; i < 4 ; i++)
-		{
+	if(nCam == -1) {
+		for(i = 0 ; i < 6 ; i++) {
 			double dZoom = m_frameImg[i].GetZoomData();
-			scrollInfoH.nPage	= (int)(m_frameImg[i].m_WndRect.Width() / dZoom);
+			scrollInfoH.nPage = (int)(m_frameImg[i].m_WndRect.Width() / dZoom);
 
 			m_ctrlScrollH[i].SetScrollPos(0);
 			m_ctrlScrollH[i].SetScrollInfo(&scrollInfoH);
 		}
 	}
-	else
-	{
+	else {
 		double dZoom = m_frameImg[nCam].GetZoomData();
-		scrollInfoH.nPage	= (int)(m_frameImg[nCam].m_WndRect.Width() / dZoom);
+		scrollInfoH.nPage = (int)(m_frameImg[nCam].m_WndRect.Width() / dZoom);
 
 		m_ctrlScrollH[nCam].SetScrollPos(0);
 		m_ctrlScrollH[nCam].SetScrollInfo(&scrollInfoH);
@@ -288,7 +280,6 @@
 void CViewMain_LiveCam::OnBnClickedRdoSignal1()
 {
 	m_nRdoSignal = 0;
-
 	OnBnClickedBtnStop();
 }
 
@@ -299,8 +290,6 @@
 	OnBnClickedBtnStop();
 }
 
-
-
 void CViewMain_LiveCam::OnBnClickedBtnCamSnap()
 {
 	OnBnClickedBtnStop();
@@ -309,9 +298,7 @@
 LRESULT CViewMain_LiveCam::OnLiveImgUpDate(WPARAM wParam, LPARAM lParam)
 {
 	int nIndex  = int(lParam);	
-
 	m_frameImg[nIndex].ViewUpdate();
-
 	return 0;
 }
 
@@ -361,17 +348,14 @@
 
 void CViewMain_LiveCam::UpdateZoom(int nIndex)
 {
-	if(nIndex == -1)
-	{
-		for(int i = 0; i < MAX_CAMERA_COUNT;i++)
-		{
+	if(nIndex == -1) {
+		for(int i = 0; i < MAX_CAMERA_COUNT;i++) {
 			m_frameImg[i].SetZommMode(m_dZoom[i]);		
 			InitScrollInfo(-1);
 			m_frameImg[i].Invalidate(FALSE);
 		}	
 	}
-	else
-	{
+	else {
 		m_frameImg[nIndex].SetZommMode(m_dZoom[nIndex]);		
 		InitScrollInfo(nIndex);
 		m_frameImg[nIndex].Invalidate(FALSE);

--
Gitblit v1.9.3