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