From a68073a77792dc96cecbfb79693d531bc51ebbac Mon Sep 17 00:00:00 2001
From: mrDarker <mr.darker@163.com>
Date: 星期五, 08 八月 2025 18:01:35 +0800
Subject: [PATCH] 1. 修复保存图片分配率问题 2. 修复获取相机配置的问题 3. 添加侧面检的视觉模块

---
 EdgeInspector_App/ViewMain_Recipe.cpp |   68 +++++++++++++++++++++++++++++++++-
 1 files changed, 66 insertions(+), 2 deletions(-)

diff --git a/EdgeInspector_App/ViewMain_Recipe.cpp b/EdgeInspector_App/ViewMain_Recipe.cpp
index fae101f..6cd32ce 100644
--- a/EdgeInspector_App/ViewMain_Recipe.cpp
+++ b/EdgeInspector_App/ViewMain_Recipe.cpp
@@ -167,6 +167,10 @@
 	ON_EVENT(CViewMain_Recipe, IDC_RDO_SIDE_B_BOT, DISPID_CLICK, CViewMain_Recipe::ClickSideSelButton, VTS_NONE)
 	ON_EVENT(CViewMain_Recipe, IDC_RDO_SIDE_C_BOT, DISPID_CLICK, CViewMain_Recipe::ClickSideSelButton, VTS_NONE)
 	ON_EVENT(CViewMain_Recipe, IDC_RDO_SIDE_D_BOT, DISPID_CLICK, CViewMain_Recipe::ClickSideSelButton, VTS_NONE)
+	ON_EVENT(CViewMain_Recipe, IDC_RDO_SIDE_A_RIP, DISPID_CLICK, CViewMain_Recipe::ClickSideSelButton, VTS_NONE)
+	ON_EVENT(CViewMain_Recipe, IDC_RDO_SIDE_B_RIP, DISPID_CLICK, CViewMain_Recipe::ClickSideSelButton, VTS_NONE)
+	ON_EVENT(CViewMain_Recipe, IDC_RDO_SIDE_C_RIP, DISPID_CLICK, CViewMain_Recipe::ClickSideSelButton, VTS_NONE)
+	ON_EVENT(CViewMain_Recipe, IDC_RDO_SIDE_D_RIP, DISPID_CLICK, CViewMain_Recipe::ClickSideSelButton, VTS_NONE)
 
 	ON_EVENT(CViewMain_Recipe, IDC_RDO_INSTYPE_CHIP, DISPID_CLICK, CViewMain_Recipe::ClickRdoInsType, VTS_NONE)
 	ON_EVENT(CViewMain_Recipe, IDC_RDO_INSTYPE_CRACK, DISPID_CLICK, CViewMain_Recipe::ClickRdoInsType, VTS_NONE)
@@ -1118,12 +1122,25 @@
 	case IDC_RDO_SIDE_D_BOT:
 		eSelView = eRcp_SideRD_D_DN;		
 		break;
+	case IDC_RDO_SIDE_A_RIP:
+		eSelView = eRcp_SideRD_A_RIP;
+		break;
+	case IDC_RDO_SIDE_B_RIP:
+		eSelView = eRcp_SideRD_B_RIP;
+		break;
+	case IDC_RDO_SIDE_C_RIP:
+		eSelView = eRcp_SideRD_C_RIP;
+		break;
+	case IDC_RDO_SIDE_D_RIP:
+		eSelView = eRcp_SideRD_D_RIP;
+		break;
 	default:
 		return;
 	}
 
-	if(m_eSelectSide == eSelView)
+	if (m_eSelectSide == eSelView) {
 		return;
+	}
 
 	m_eSelectSide = eSelView;
 
@@ -1133,11 +1150,17 @@
 
 	double dPixelSizeX = 1.0;
 	double dPixelSizeY = 1.0;
-	int nFrameWidth = IMAGE_WIDTH;
+
+	int nFrameWidth = IMAGE_WIDTH / 2;
+	if (eSelView < eRcp_SideRD_A_RIP){
+		nFrameWidth = IMAGE_WIDTH;
+	}
+
 	int nFrameHeight = IMAGE_HEIGHT;
 	int nFrameCount = MAX_FRAM_COUNT;
 	GetResolution(dPixelSizeX, dPixelSizeY, nFrameWidth, nFrameHeight, nFrameCount);
 	m_frameImg.SetPixelSize(dPixelSizeX, dPixelSizeY);
+	m_frameImg.SetImageSize(nFrameWidth, nFrameHeight, nFrameCount);
 
 #if HALCON_VISION_KEY
 	if (NULL != m_pVisionSetDlg) {
@@ -1541,6 +1564,14 @@
 	m_PanelInfo.SetItemText(nRowIdx, nColIdx++, _T("C Bot"));
 	m_PanelInfo.SetColumnWidth(nColIdx, 80);
 	m_PanelInfo.SetItemText(nRowIdx, nColIdx++, _T("D Bot"));
+	m_PanelInfo.SetColumnWidth(nColIdx, 80);
+	m_PanelInfo.SetItemText(nRowIdx, nColIdx++, _T("A RIP"));
+	m_PanelInfo.SetColumnWidth(nColIdx, 80);
+	m_PanelInfo.SetItemText(nRowIdx, nColIdx++, _T("B RIP"));
+	m_PanelInfo.SetColumnWidth(nColIdx, 80);
+	m_PanelInfo.SetItemText(nRowIdx, nColIdx++, _T("C RIP"));
+	m_PanelInfo.SetColumnWidth(nColIdx, 80);
+	m_PanelInfo.SetItemText(nRowIdx, nColIdx++, _T("D RIP"));
 
 	nColIdx = 0;
 	nRowIdx = 1;
@@ -1674,6 +1705,14 @@
 	m_SideInspectInfo.SetItemText(nRowIdx, nColIdx++, _T("C Bot"));
 	m_SideInspectInfo.SetColumnWidth(nColIdx, 80);
 	m_SideInspectInfo.SetItemText(nRowIdx, nColIdx++, _T("D Bot"));
+	m_SideInspectInfo.SetColumnWidth(nColIdx, 80);
+	m_SideInspectInfo.SetItemText(nRowIdx, nColIdx++, _T("A RIP"));
+	m_SideInspectInfo.SetColumnWidth(nColIdx, 80);
+	m_SideInspectInfo.SetItemText(nRowIdx, nColIdx++, _T("B RIP"));
+	m_SideInspectInfo.SetColumnWidth(nColIdx, 80);
+	m_SideInspectInfo.SetItemText(nRowIdx, nColIdx++, _T("C RIP"));
+	m_SideInspectInfo.SetColumnWidth(nColIdx, 80);
+	m_SideInspectInfo.SetItemText(nRowIdx, nColIdx++, _T("D RIP"));
 
 	nColIdx = 0;
 	nRowIdx = 1;
@@ -1876,6 +1915,14 @@
 	m_JudgementInfo.SetItemText(nRowIdx, nColIdx++, _T("C Bot"));
 	m_JudgementInfo.SetColumnWidth(nColIdx, 80);
 	m_JudgementInfo.SetItemText(nRowIdx, nColIdx++, _T("D Bot"));
+	m_JudgementInfo.SetColumnWidth(nColIdx, 80);
+	m_JudgementInfo.SetItemText(nRowIdx, nColIdx++, _T("A RIP"));
+	m_JudgementInfo.SetColumnWidth(nColIdx, 80);
+	m_JudgementInfo.SetItemText(nRowIdx, nColIdx++, _T("B RIP"));
+	m_JudgementInfo.SetColumnWidth(nColIdx, 80);
+	m_JudgementInfo.SetItemText(nRowIdx, nColIdx++, _T("C RIP"));
+	m_JudgementInfo.SetColumnWidth(nColIdx, 80);
+	m_JudgementInfo.SetItemText(nRowIdx, nColIdx++, _T("D RIP"));
 
 	nColIdx = 0;
 	nRowIdx = 1;
@@ -2892,6 +2939,8 @@
 {
 	UINT nID = GetFocus()->GetDlgCtrlID();
 
+	SetSideRadioExclusive(nID);
+
 	UpdateRecipe(TRUE);
 
 	ChangViewCdmSide(nID);
@@ -3210,3 +3259,18 @@
 	pApp->ChangeDimension(m_pVisionSetDlg, nDir);
 #endif // HALCON_VISION_KEY
 }
+
+void CViewMain_Recipe::SetSideRadioExclusive(UINT nSelId)
+{
+	static const UINT kIds[] = {
+		IDC_RDO_SIDE_A_TOP, IDC_RDO_SIDE_B_TOP, IDC_RDO_SIDE_C_TOP, IDC_RDO_SIDE_D_TOP,
+		IDC_RDO_SIDE_A_BOT, IDC_RDO_SIDE_B_BOT, IDC_RDO_SIDE_C_BOT, IDC_RDO_SIDE_D_BOT,
+		IDC_RDO_SIDE_A_RIP, IDC_RDO_SIDE_B_RIP, IDC_RDO_SIDE_C_RIP, IDC_RDO_SIDE_D_RIP
+	};
+
+	for (UINT id : kIds) {
+		if (CButton* p = (CButton*)GetDlgItem(id)) {
+			p->SetCheck(id == nSelId ? 1 : 0);
+		}
+	}
+}
\ No newline at end of file

--
Gitblit v1.9.3