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 |   88 ++++++++++++++++++++++++++++++++++++++------
 1 files changed, 76 insertions(+), 12 deletions(-)

diff --git a/EdgeInspector_App/ViewMain_Recipe.cpp b/EdgeInspector_App/ViewMain_Recipe.cpp
index a576591..6cd32ce 100644
--- a/EdgeInspector_App/ViewMain_Recipe.cpp
+++ b/EdgeInspector_App/ViewMain_Recipe.cpp
@@ -1,4 +1,4 @@
-// ViewLedRecipeSetting.cpp : 备泅 颇老涝聪促.
+锘�// ViewLedRecipeSetting.cpp : 澶囨硡 棰囪�佹稘鑱績.
 //
 
 #include "stdafx.h"
@@ -9,7 +9,7 @@
 #include "ViewLampControl.h"
 #include "DlgLogin.h"
 #include "Global_Define.h"
-// CViewLedRecipeSetting 措拳 惑磊涝聪促.
+// CViewLedRecipeSetting 鎺嫵 鎯戠娑濊仾淇�.
 
 IMPLEMENT_DYNAMIC(CViewMain_Recipe, CDialogEx)
 
@@ -150,7 +150,7 @@
 END_MESSAGE_MAP()
 
 
-// CViewLedRecipeSetting 皋矫瘤 贸府扁涝聪促.
+// CViewLedRecipeSetting 鐨嬬煫鐦� 璐稿簻鎵佹稘鑱績.
 BEGIN_EVENTSINK_MAP(CViewMain_Recipe, CDialogEx)
 	ON_EVENT(CViewMain_Recipe, IDC_BTN_IMG_LOAD, DISPID_CLICK, CViewMain_Recipe::ClickImgLoadButton, VTS_NONE)
 	ON_EVENT(CViewMain_Recipe, IDC_BTN_IMG_SAVE, DISPID_CLICK, CViewMain_Recipe::ClickImgSaveButton, VTS_NONE)
@@ -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)
@@ -309,10 +313,10 @@
 #if HALCON_VISION_KEY
 void CViewMain_Recipe::onMsgVisionEvent(int code, int eDir) {
 	/* code */
-	if (1 == code) {     //获取区域数据
+	if (1 == code) {     //鑾峰彇鍖哄煙鏁版嵁
 		m_pThis->SetFrameRegion();
 	}
-	else if (2 == code) {    //获取效果
+	else if (2 == code) {    //鑾峰彇鏁堟灉
 		m_pThis->DispAllResult();
 	}
 }
@@ -906,7 +910,7 @@
 
 		tickCount = GetTickCount();
 
-		// 急琶等 Recipe 荐沥.				
+		// 鎬ョ惗绛� Recipe 鑽愭播.				
 		if (m_pDlgRecipe->WriteRecipeFile() == FALSE)		
 		{
 			AfxMessageBox(_T("Save Fail"), MB_OK | MB_ICONERROR);
@@ -989,7 +993,7 @@
 
 void CViewMain_Recipe::DeleteVectorList()
 {
-	// Vector 昏力
+	// Vector 鏄忓姏
 	LinkList* pList = NULL;
 	for (VectorLinkListIt it = m_VectorLinkList.begin(); it != m_VectorLinkList.end(); it++)
 	{
@@ -1076,7 +1080,7 @@
 {
 	if(strRecipe.IsEmpty() == TRUE)
 	{
-		//AfxMessageBox("Recipe Name捞 绝嚼聪促.");
+		//AfxMessageBox("Recipe Name鎹� 缁濆毤鑱績.");
 		return FALSE;	
 	}
 
@@ -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);
@@ -3166,7 +3215,7 @@
 {
 	CPaintDC dc(this);
 
-	DrawMarkImage();	// 恐 捞芭 秦拎具父 贸澜俊 付农 捞固瘤啊 弊妨龙鳖..
+	DrawMarkImage();	// 鎭� 鎹炶姯 绉︽嫀鍏风埗 璐告緶淇� 浠樺啘 鎹炲浐鐦ゅ晩 寮婂Θ榫欓硸..
 }
 
 void CViewMain_Recipe::ClickButtonOpenExceptionSettingView()
@@ -3191,7 +3240,7 @@
 
 void CViewMain_Recipe::ClickButtonVisionSetting()
 {
-	// TODO: 在此处添加消息处理程序代码
+	// TODO: 鍦ㄦ澶勬坊鍔犳秷鎭鐞嗙▼搴忎唬鐮�
 #if HALCON_VISION_KEY
 	IVisionRecipe* pInstance = BlVision_GetVisionRecipe();
 	if (!pInstance->getVisionUse()) {
@@ -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