From 27b45f7dd911640b4c8fefe6e060fc35a1f98e6e Mon Sep 17 00:00:00 2001
From: mrDarker <mr.darker@163.com>
Date: 星期四, 24 七月 2025 16:31:52 +0800
Subject: [PATCH] 1. 更新视觉程序(代提交)

---
 BlVisionPro/Vision/VisionRecipe.cpp               |   31 +++++
 Common_Class/BlVisionPro/Vision/VisionRecipe.h    |    4 
 Common_Class/BlVisionPro/BlVisionPro.rc           |    0 
 Common_Class/BlVisionPro/View/KeyVisionSetDlg.cpp |  133 ++++++++++++++++++++++
 Common_Class/BlVisionPro/resource.h               |    0 
 BlVisionPro/Vision/VisionRecipe.h                 |    4 
 Common_Class/BlVisionPro/Vision/VisionRecipe.cpp  |   31 +++++
 BlVisionPro/View/KeyVisionSetDlg.cpp              |  133 ++++++++++++++++++++++
 BlVisionPro/Vision/BlVisionLib.cpp                |    2 
 BlVisionPro/BlVisionPro.rc                        |    0 
 BlVisionPro/resource.h                            |    0 
 Common_Class/BlVisionPro/Vision/BlVisionLib.cpp   |    2 
 12 files changed, 338 insertions(+), 2 deletions(-)

diff --git a/BlVisionPro/BlVisionPro.rc b/BlVisionPro/BlVisionPro.rc
index c1ef950..9bef394 100644
--- a/BlVisionPro/BlVisionPro.rc
+++ b/BlVisionPro/BlVisionPro.rc
Binary files differ
diff --git a/BlVisionPro/View/KeyVisionSetDlg.cpp b/BlVisionPro/View/KeyVisionSetDlg.cpp
index 9a73da1..154db2e 100644
--- a/BlVisionPro/View/KeyVisionSetDlg.cpp
+++ b/BlVisionPro/View/KeyVisionSetDlg.cpp
@@ -185,6 +185,71 @@
 	m_btnDebugKey[6].SetCheck(info.isRcutKey);
 
 	LockBtn(!m_btnDebugKey[0].GetCheck());
+
+	CString strText;
+	CBlSideData* pSide1 = pInstance->getSideData(DimensionDir(0));
+	if (nullptr != pSide1) {
+        strText.Format(_T("%.4f"), pSide1->m_dPixelSizeX);
+		SetDlgItemText(IDC_EDT_MMVSPX1, strText);
+		strText.Format(_T("%.4f"), pSide1->m_dPixelSizeY);
+		SetDlgItemText(IDC_EDT_MMVSPY1, strText);
+	}
+
+	CBlSideData* pSide2 = pInstance->getSideData(DimensionDir(1));
+	if (nullptr != pSide2) {
+		strText.Format(_T("%.4f"), pSide2->m_dPixelSizeX);
+		SetDlgItemText(IDC_EDT_MMVSPX2, strText);
+		strText.Format(_T("%.4f"), pSide2->m_dPixelSizeY);
+		SetDlgItemText(IDC_EDT_MMVSPY2, strText);
+	}
+
+	CBlSideData* pSide3 = pInstance->getSideData(DimensionDir(2));
+	if (nullptr != pSide3) {
+		strText.Format(_T("%.4f"), pSide3->m_dPixelSizeX);
+		SetDlgItemText(IDC_EDT_MMVSPX3, strText);
+		strText.Format(_T("%.4f"), pSide3->m_dPixelSizeY);
+		SetDlgItemText(IDC_EDT_MMVSPY3, strText);
+	}
+
+	CBlSideData* pSide4 = pInstance->getSideData(DimensionDir(3));
+	if (nullptr != pSide4) {
+		strText.Format(_T("%.4f"), pSide4->m_dPixelSizeX);
+		SetDlgItemText(IDC_EDT_MMVSPX4, strText);
+		strText.Format(_T("%.4f"), pSide4->m_dPixelSizeY);
+		SetDlgItemText(IDC_EDT_MMVSPY4, strText);
+	}
+
+	CBlSideData* pSide5 = pInstance->getSideData(DimensionDir(4));
+	if (nullptr != pSide5) {
+		strText.Format(_T("%.4f"), pSide5->m_dPixelSizeX);
+		SetDlgItemText(IDC_EDT_MMVSPX5, strText);
+		strText.Format(_T("%.4f"), pSide5->m_dPixelSizeY);
+		SetDlgItemText(IDC_EDT_MMVSPY5, strText);
+	}
+
+	CBlSideData* pSide6 = pInstance->getSideData(DimensionDir(5));
+	if (nullptr != pSide6) {
+		strText.Format(_T("%.4f"), pSide6->m_dPixelSizeX);
+		SetDlgItemText(IDC_EDT_MMVSPX6, strText);
+		strText.Format(_T("%.4f"), pSide6->m_dPixelSizeY);
+		SetDlgItemText(IDC_EDT_MMVSPY6, strText);
+	}
+
+	CBlSideData* pSide7 = pInstance->getSideData(DimensionDir(6));
+	if (nullptr != pSide7) {
+		strText.Format(_T("%.4f"), pSide7->m_dPixelSizeX);
+		SetDlgItemText(IDC_EDT_MMVSPX7, strText);
+		strText.Format(_T("%.4f"), pSide7->m_dPixelSizeY);
+		SetDlgItemText(IDC_EDT_MMVSPY7, strText);
+	}
+
+	CBlSideData* pSide8 = pInstance->getSideData(DimensionDir(7));
+	if (nullptr != pSide8) {
+		strText.Format(_T("%.4f"), pSide8->m_dPixelSizeX);
+		SetDlgItemText(IDC_EDT_MMVSPX8, strText);
+		strText.Format(_T("%.4f"), pSide8->m_dPixelSizeY);
+		SetDlgItemText(IDC_EDT_MMVSPY8, strText);
+	}
 }
 
 
@@ -234,7 +299,75 @@
 	info.isRcutKey = (1 == m_btnDebugKey[6].GetCheck());
 	pInstance->setKeyInfo(info);
 
+	CString strTextX, strTextY;
+	GetDlgItemText(IDC_EDT_MMVSPX1, strTextX);
+	GetDlgItemText(IDC_EDT_MMVSPY1, strTextY);
+	CBlSideData* pSide1 = pInstance->getSideData(DimensionDir(0));
+	if (nullptr != pSide1) {
+		pSide1->m_dPixelSizeX = _wtof(strTextX);
+		pSide1->m_dPixelSizeY = _wtof(strTextY);
+	}
+
+	GetDlgItemText(IDC_EDT_MMVSPX2, strTextX);
+	GetDlgItemText(IDC_EDT_MMVSPY2, strTextY);
+	CBlSideData* pSide2 = pInstance->getSideData(DimensionDir(1));
+	if (nullptr != pSide2) {
+		pSide2->m_dPixelSizeX = _wtof(strTextX);
+		pSide2->m_dPixelSizeY = _wtof(strTextY);
+	}
+
+
+	GetDlgItemText(IDC_EDT_MMVSPX3, strTextX);
+	GetDlgItemText(IDC_EDT_MMVSPY3, strTextY);
+	CBlSideData* pSide3 = pInstance->getSideData(DimensionDir(2));
+	if (nullptr != pSide3) {
+		pSide3->m_dPixelSizeX = _wtof(strTextX);
+		pSide3->m_dPixelSizeY = _wtof(strTextY);
+	}
+
+
+	GetDlgItemText(IDC_EDT_MMVSPX4, strTextX);
+	GetDlgItemText(IDC_EDT_MMVSPY4, strTextY);
+	CBlSideData* pSide4 = pInstance->getSideData(DimensionDir(3));
+	if (nullptr != pSide4) {
+		pSide4->m_dPixelSizeX = _wtof(strTextX);
+		pSide4->m_dPixelSizeY = _wtof(strTextY);
+	}
+
+	GetDlgItemText(IDC_EDT_MMVSPX5, strTextX);
+	GetDlgItemText(IDC_EDT_MMVSPY5, strTextY);
+	CBlSideData* pSide5 = pInstance->getSideData(DimensionDir(4));
+	if (nullptr != pSide5) {
+		pSide5->m_dPixelSizeX = _wtof(strTextX);
+		pSide5->m_dPixelSizeY = _wtof(strTextY);
+	}
+
+	GetDlgItemText(IDC_EDT_MMVSPX6, strTextX);
+	GetDlgItemText(IDC_EDT_MMVSPY6, strTextY);
+	CBlSideData* pSide6 = pInstance->getSideData(DimensionDir(5));
+	if (nullptr != pSide6) {
+		pSide6->m_dPixelSizeX = _wtof(strTextX);
+		pSide6->m_dPixelSizeY = _wtof(strTextY);
+	}
+
+	GetDlgItemText(IDC_EDT_MMVSPX7, strTextX);
+	GetDlgItemText(IDC_EDT_MMVSPY7, strTextY);
+	CBlSideData* pSide7 = pInstance->getSideData(DimensionDir(6));
+	if (nullptr != pSide7) {
+		pSide7->m_dPixelSizeX = _wtof(strTextX);
+		pSide7->m_dPixelSizeY = _wtof(strTextY);
+	}
+
+	GetDlgItemText(IDC_EDT_MMVSPX8, strTextX);
+	GetDlgItemText(IDC_EDT_MMVSPY8, strTextY);
+	CBlSideData* pSide8 = pInstance->getSideData(DimensionDir(7));
+	if (nullptr != pSide8) {
+		pSide8->m_dPixelSizeX = _wtof(strTextX);
+		pSide8->m_dPixelSizeY = _wtof(strTextY);
+	}
+
 	pInstance->saveVisionConfig();
+	pInstance->saveResolution();
 }
 
 
diff --git a/BlVisionPro/Vision/BlVisionLib.cpp b/BlVisionPro/Vision/BlVisionLib.cpp
index eb807c8..9cdecfe 100644
--- a/BlVisionPro/Vision/BlVisionLib.cpp
+++ b/BlVisionPro/Vision/BlVisionLib.cpp
@@ -3,7 +3,7 @@
 #include "VisionRecipe.h"
 #include "SoftVisionApp.h"
 
-#define BLVISION_VERSION    _T("1.0.1.1")
+#define BLVISION_VERSION    _T("1.0.2.0")
 int BlVision_GetVersion(char *pszVersion, int nBufferSize) {
 	/* code */
 	// 将ANSI字符串转换为宽字符串
diff --git a/BlVisionPro/Vision/VisionRecipe.cpp b/BlVisionPro/Vision/VisionRecipe.cpp
index 86cef88..a9972ed 100644
--- a/BlVisionPro/Vision/VisionRecipe.cpp
+++ b/BlVisionPro/Vision/VisionRecipe.cpp
@@ -113,10 +113,23 @@
 
 	WriteRecipeVisionFile();
 
+	saveResolution();
+
 	//if (CStdioFile::hFileNull != m_recipeFile.m_hFile) {
 	//	m_recipeFile.Close();
 	//}
 	return 0;
+}
+
+void CVisionRecipe::saveResolution(void) {
+	/* code */
+	std::string array_dir_use[8] = { "A TOP","B TOP", "C TOP", "D TOP", "A BOT", "B BOT","C BOT", "D BOT" };
+	std::string strSection = "";
+	for (int i = 0; i < 8; i++) {
+		strSection = array_dir_use[i];
+		m_configVision.WriteFloat(strSection.c_str(), "Pixel SizeX", m_pBlSideData[i]->m_dPixelSizeX);
+		m_configVision.WriteFloat(strSection.c_str(), "Pixel SizeY", m_pBlSideData[i]->m_dPixelSizeY);
+	}
 }
 
 int CVisionRecipe::WriteRecipeVisionFile(void) {
@@ -244,6 +257,9 @@
 
 	ReadRecipeFile();
 
+	loadResolution();
+
+	
 #if 0
 	if (!isExist) {
 		if (CStdioFile::hFileNull != m_recipeFile.m_hFile) {
@@ -255,6 +271,21 @@
 	return 0;
 }
 
+void CVisionRecipe::loadResolution(void) {
+	/* code */
+	std::string array_dir_use[8] = { "A TOP","B TOP", "C TOP", "D TOP", "A BOT", "B BOT","C BOT", "D BOT" };
+	std::string strSection = "";
+	for (int i = 0; i < 8; i++) {
+		strSection = array_dir_use[i];
+		double dPixelSizeX = m_configVision.ReadFloat(strSection.c_str(), "Pixel SizeX", 0.0);
+		double dPixelSizeY = m_configVision.ReadFloat(strSection.c_str(), "Pixel SizeY", 0.0);
+		if (fabs(dPixelSizeX) > 0.001 || fabs(dPixelSizeY) > 0.001) {
+			m_pBlSideData[i]->m_dPixelSizeX = dPixelSizeX;
+			m_pBlSideData[i]->m_dPixelSizeY = dPixelSizeY;
+		}
+	}
+}
+
 void CVisionRecipe::ReadRecipeFile(void) {
 	/* code */
 	std::string strDir = m_workDir + "\\" + m_strVisionName + "\\";
diff --git a/BlVisionPro/Vision/VisionRecipe.h b/BlVisionPro/Vision/VisionRecipe.h
index a562ef1..065b436 100644
--- a/BlVisionPro/Vision/VisionRecipe.h
+++ b/BlVisionPro/Vision/VisionRecipe.h
@@ -132,6 +132,10 @@
 	void setStage(int nStage);
 	int getStage(void);
 
+	//14. 保存分辨率
+	void saveResolution(void);
+	void loadResolution(void);
+
 private:
 	bool m_isInit;
 	std::string m_workDir;
diff --git a/BlVisionPro/resource.h b/BlVisionPro/resource.h
index ed11d66..a9d515b 100644
--- a/BlVisionPro/resource.h
+++ b/BlVisionPro/resource.h
Binary files differ
diff --git a/Common_Class/BlVisionPro/BlVisionPro.rc b/Common_Class/BlVisionPro/BlVisionPro.rc
index c1ef950..9bef394 100644
--- a/Common_Class/BlVisionPro/BlVisionPro.rc
+++ b/Common_Class/BlVisionPro/BlVisionPro.rc
Binary files differ
diff --git a/Common_Class/BlVisionPro/View/KeyVisionSetDlg.cpp b/Common_Class/BlVisionPro/View/KeyVisionSetDlg.cpp
index 9a73da1..154db2e 100644
--- a/Common_Class/BlVisionPro/View/KeyVisionSetDlg.cpp
+++ b/Common_Class/BlVisionPro/View/KeyVisionSetDlg.cpp
@@ -185,6 +185,71 @@
 	m_btnDebugKey[6].SetCheck(info.isRcutKey);
 
 	LockBtn(!m_btnDebugKey[0].GetCheck());
+
+	CString strText;
+	CBlSideData* pSide1 = pInstance->getSideData(DimensionDir(0));
+	if (nullptr != pSide1) {
+        strText.Format(_T("%.4f"), pSide1->m_dPixelSizeX);
+		SetDlgItemText(IDC_EDT_MMVSPX1, strText);
+		strText.Format(_T("%.4f"), pSide1->m_dPixelSizeY);
+		SetDlgItemText(IDC_EDT_MMVSPY1, strText);
+	}
+
+	CBlSideData* pSide2 = pInstance->getSideData(DimensionDir(1));
+	if (nullptr != pSide2) {
+		strText.Format(_T("%.4f"), pSide2->m_dPixelSizeX);
+		SetDlgItemText(IDC_EDT_MMVSPX2, strText);
+		strText.Format(_T("%.4f"), pSide2->m_dPixelSizeY);
+		SetDlgItemText(IDC_EDT_MMVSPY2, strText);
+	}
+
+	CBlSideData* pSide3 = pInstance->getSideData(DimensionDir(2));
+	if (nullptr != pSide3) {
+		strText.Format(_T("%.4f"), pSide3->m_dPixelSizeX);
+		SetDlgItemText(IDC_EDT_MMVSPX3, strText);
+		strText.Format(_T("%.4f"), pSide3->m_dPixelSizeY);
+		SetDlgItemText(IDC_EDT_MMVSPY3, strText);
+	}
+
+	CBlSideData* pSide4 = pInstance->getSideData(DimensionDir(3));
+	if (nullptr != pSide4) {
+		strText.Format(_T("%.4f"), pSide4->m_dPixelSizeX);
+		SetDlgItemText(IDC_EDT_MMVSPX4, strText);
+		strText.Format(_T("%.4f"), pSide4->m_dPixelSizeY);
+		SetDlgItemText(IDC_EDT_MMVSPY4, strText);
+	}
+
+	CBlSideData* pSide5 = pInstance->getSideData(DimensionDir(4));
+	if (nullptr != pSide5) {
+		strText.Format(_T("%.4f"), pSide5->m_dPixelSizeX);
+		SetDlgItemText(IDC_EDT_MMVSPX5, strText);
+		strText.Format(_T("%.4f"), pSide5->m_dPixelSizeY);
+		SetDlgItemText(IDC_EDT_MMVSPY5, strText);
+	}
+
+	CBlSideData* pSide6 = pInstance->getSideData(DimensionDir(5));
+	if (nullptr != pSide6) {
+		strText.Format(_T("%.4f"), pSide6->m_dPixelSizeX);
+		SetDlgItemText(IDC_EDT_MMVSPX6, strText);
+		strText.Format(_T("%.4f"), pSide6->m_dPixelSizeY);
+		SetDlgItemText(IDC_EDT_MMVSPY6, strText);
+	}
+
+	CBlSideData* pSide7 = pInstance->getSideData(DimensionDir(6));
+	if (nullptr != pSide7) {
+		strText.Format(_T("%.4f"), pSide7->m_dPixelSizeX);
+		SetDlgItemText(IDC_EDT_MMVSPX7, strText);
+		strText.Format(_T("%.4f"), pSide7->m_dPixelSizeY);
+		SetDlgItemText(IDC_EDT_MMVSPY7, strText);
+	}
+
+	CBlSideData* pSide8 = pInstance->getSideData(DimensionDir(7));
+	if (nullptr != pSide8) {
+		strText.Format(_T("%.4f"), pSide8->m_dPixelSizeX);
+		SetDlgItemText(IDC_EDT_MMVSPX8, strText);
+		strText.Format(_T("%.4f"), pSide8->m_dPixelSizeY);
+		SetDlgItemText(IDC_EDT_MMVSPY8, strText);
+	}
 }
 
 
@@ -234,7 +299,75 @@
 	info.isRcutKey = (1 == m_btnDebugKey[6].GetCheck());
 	pInstance->setKeyInfo(info);
 
+	CString strTextX, strTextY;
+	GetDlgItemText(IDC_EDT_MMVSPX1, strTextX);
+	GetDlgItemText(IDC_EDT_MMVSPY1, strTextY);
+	CBlSideData* pSide1 = pInstance->getSideData(DimensionDir(0));
+	if (nullptr != pSide1) {
+		pSide1->m_dPixelSizeX = _wtof(strTextX);
+		pSide1->m_dPixelSizeY = _wtof(strTextY);
+	}
+
+	GetDlgItemText(IDC_EDT_MMVSPX2, strTextX);
+	GetDlgItemText(IDC_EDT_MMVSPY2, strTextY);
+	CBlSideData* pSide2 = pInstance->getSideData(DimensionDir(1));
+	if (nullptr != pSide2) {
+		pSide2->m_dPixelSizeX = _wtof(strTextX);
+		pSide2->m_dPixelSizeY = _wtof(strTextY);
+	}
+
+
+	GetDlgItemText(IDC_EDT_MMVSPX3, strTextX);
+	GetDlgItemText(IDC_EDT_MMVSPY3, strTextY);
+	CBlSideData* pSide3 = pInstance->getSideData(DimensionDir(2));
+	if (nullptr != pSide3) {
+		pSide3->m_dPixelSizeX = _wtof(strTextX);
+		pSide3->m_dPixelSizeY = _wtof(strTextY);
+	}
+
+
+	GetDlgItemText(IDC_EDT_MMVSPX4, strTextX);
+	GetDlgItemText(IDC_EDT_MMVSPY4, strTextY);
+	CBlSideData* pSide4 = pInstance->getSideData(DimensionDir(3));
+	if (nullptr != pSide4) {
+		pSide4->m_dPixelSizeX = _wtof(strTextX);
+		pSide4->m_dPixelSizeY = _wtof(strTextY);
+	}
+
+	GetDlgItemText(IDC_EDT_MMVSPX5, strTextX);
+	GetDlgItemText(IDC_EDT_MMVSPY5, strTextY);
+	CBlSideData* pSide5 = pInstance->getSideData(DimensionDir(4));
+	if (nullptr != pSide5) {
+		pSide5->m_dPixelSizeX = _wtof(strTextX);
+		pSide5->m_dPixelSizeY = _wtof(strTextY);
+	}
+
+	GetDlgItemText(IDC_EDT_MMVSPX6, strTextX);
+	GetDlgItemText(IDC_EDT_MMVSPY6, strTextY);
+	CBlSideData* pSide6 = pInstance->getSideData(DimensionDir(5));
+	if (nullptr != pSide6) {
+		pSide6->m_dPixelSizeX = _wtof(strTextX);
+		pSide6->m_dPixelSizeY = _wtof(strTextY);
+	}
+
+	GetDlgItemText(IDC_EDT_MMVSPX7, strTextX);
+	GetDlgItemText(IDC_EDT_MMVSPY7, strTextY);
+	CBlSideData* pSide7 = pInstance->getSideData(DimensionDir(6));
+	if (nullptr != pSide7) {
+		pSide7->m_dPixelSizeX = _wtof(strTextX);
+		pSide7->m_dPixelSizeY = _wtof(strTextY);
+	}
+
+	GetDlgItemText(IDC_EDT_MMVSPX8, strTextX);
+	GetDlgItemText(IDC_EDT_MMVSPY8, strTextY);
+	CBlSideData* pSide8 = pInstance->getSideData(DimensionDir(7));
+	if (nullptr != pSide8) {
+		pSide8->m_dPixelSizeX = _wtof(strTextX);
+		pSide8->m_dPixelSizeY = _wtof(strTextY);
+	}
+
 	pInstance->saveVisionConfig();
+	pInstance->saveResolution();
 }
 
 
diff --git a/Common_Class/BlVisionPro/Vision/BlVisionLib.cpp b/Common_Class/BlVisionPro/Vision/BlVisionLib.cpp
index eb807c8..9cdecfe 100644
--- a/Common_Class/BlVisionPro/Vision/BlVisionLib.cpp
+++ b/Common_Class/BlVisionPro/Vision/BlVisionLib.cpp
@@ -3,7 +3,7 @@
 #include "VisionRecipe.h"
 #include "SoftVisionApp.h"
 
-#define BLVISION_VERSION    _T("1.0.1.1")
+#define BLVISION_VERSION    _T("1.0.2.0")
 int BlVision_GetVersion(char *pszVersion, int nBufferSize) {
 	/* code */
 	// 将ANSI字符串转换为宽字符串
diff --git a/Common_Class/BlVisionPro/Vision/VisionRecipe.cpp b/Common_Class/BlVisionPro/Vision/VisionRecipe.cpp
index 86cef88..a9972ed 100644
--- a/Common_Class/BlVisionPro/Vision/VisionRecipe.cpp
+++ b/Common_Class/BlVisionPro/Vision/VisionRecipe.cpp
@@ -113,10 +113,23 @@
 
 	WriteRecipeVisionFile();
 
+	saveResolution();
+
 	//if (CStdioFile::hFileNull != m_recipeFile.m_hFile) {
 	//	m_recipeFile.Close();
 	//}
 	return 0;
+}
+
+void CVisionRecipe::saveResolution(void) {
+	/* code */
+	std::string array_dir_use[8] = { "A TOP","B TOP", "C TOP", "D TOP", "A BOT", "B BOT","C BOT", "D BOT" };
+	std::string strSection = "";
+	for (int i = 0; i < 8; i++) {
+		strSection = array_dir_use[i];
+		m_configVision.WriteFloat(strSection.c_str(), "Pixel SizeX", m_pBlSideData[i]->m_dPixelSizeX);
+		m_configVision.WriteFloat(strSection.c_str(), "Pixel SizeY", m_pBlSideData[i]->m_dPixelSizeY);
+	}
 }
 
 int CVisionRecipe::WriteRecipeVisionFile(void) {
@@ -244,6 +257,9 @@
 
 	ReadRecipeFile();
 
+	loadResolution();
+
+	
 #if 0
 	if (!isExist) {
 		if (CStdioFile::hFileNull != m_recipeFile.m_hFile) {
@@ -255,6 +271,21 @@
 	return 0;
 }
 
+void CVisionRecipe::loadResolution(void) {
+	/* code */
+	std::string array_dir_use[8] = { "A TOP","B TOP", "C TOP", "D TOP", "A BOT", "B BOT","C BOT", "D BOT" };
+	std::string strSection = "";
+	for (int i = 0; i < 8; i++) {
+		strSection = array_dir_use[i];
+		double dPixelSizeX = m_configVision.ReadFloat(strSection.c_str(), "Pixel SizeX", 0.0);
+		double dPixelSizeY = m_configVision.ReadFloat(strSection.c_str(), "Pixel SizeY", 0.0);
+		if (fabs(dPixelSizeX) > 0.001 || fabs(dPixelSizeY) > 0.001) {
+			m_pBlSideData[i]->m_dPixelSizeX = dPixelSizeX;
+			m_pBlSideData[i]->m_dPixelSizeY = dPixelSizeY;
+		}
+	}
+}
+
 void CVisionRecipe::ReadRecipeFile(void) {
 	/* code */
 	std::string strDir = m_workDir + "\\" + m_strVisionName + "\\";
diff --git a/Common_Class/BlVisionPro/Vision/VisionRecipe.h b/Common_Class/BlVisionPro/Vision/VisionRecipe.h
index a562ef1..065b436 100644
--- a/Common_Class/BlVisionPro/Vision/VisionRecipe.h
+++ b/Common_Class/BlVisionPro/Vision/VisionRecipe.h
@@ -132,6 +132,10 @@
 	void setStage(int nStage);
 	int getStage(void);
 
+	//14. 保存分辨率
+	void saveResolution(void);
+	void loadResolution(void);
+
 private:
 	bool m_isInit;
 	std::string m_workDir;
diff --git a/Common_Class/BlVisionPro/resource.h b/Common_Class/BlVisionPro/resource.h
index ed11d66..a9d515b 100644
--- a/Common_Class/BlVisionPro/resource.h
+++ b/Common_Class/BlVisionPro/resource.h
Binary files differ

--
Gitblit v1.9.3