From 5cc675212e96d87ebbf00f4fd7a8106b06a490ff Mon Sep 17 00:00:00 2001
From: mrDarker <mr.darker@163.com>
Date: 星期三, 13 八月 2025 14:00:50 +0800
Subject: [PATCH] 1. 侧面检功能添加优化(主要是现场获取图像问题)

---
 EdgeInspector_App/View/ViewMain_HWSetting.cpp |  105 ++++++++++++++++++++++++++--------------------------
 1 files changed, 52 insertions(+), 53 deletions(-)

diff --git a/EdgeInspector_App/View/ViewMain_HWSetting.cpp b/EdgeInspector_App/View/ViewMain_HWSetting.cpp
index ed24d8b..6b944ba 100644
--- a/EdgeInspector_App/View/ViewMain_HWSetting.cpp
+++ b/EdgeInspector_App/View/ViewMain_HWSetting.cpp
@@ -1,4 +1,4 @@
-// ViewHWSetting.cpp : 备泅 颇老涝聪促.
+锘�// ViewHWSetting.cpp : 澶囨硡 棰囪�佹稘鑱績.
 //
 
 #include "stdafx.h"
@@ -8,7 +8,7 @@
 #include "Global_Define.h"
 #include "NewCellTypes\GridCellCombo.h"
 
-// CViewHWSetting 措拳 惑磊涝聪促.
+// CViewHWSetting 鎺嫵 鎯戠娑濊仾淇�.
 extern BOOL g_bUse_SaveAllDMP;
 const int LIGHT_COLUMN_COUNT = 4;
 const TCHAR* LIGHT_COLUMN_ITEM[LIGHT_COLUMN_COUNT] = {_T("ID"),_T("Type"),_T("Port&IP"),_T("Maker")};
@@ -83,6 +83,8 @@
 	DDX_Check(pDX,IDC_CHECK_USE_SAVE_DEBUG_IMAGE,m_pDlgHDSettingParm->m_bUse_SaveDebugImage);	
 	DDX_Check(pDX, IDC_CHECK_USE_SAVE_ALL_DMP, g_bUse_SaveAllDMP);
 
+	DDX_Check(pDX, IDC_CHECK_SAVE_RESULT_BY_HOUR, m_pDlgHDSettingParm->m_bSaveResultByHour);		// ly,2025.07.10
+
 	DDX_Check(pDX, IDC_CHECK_ENABLE_AUTO_COPY, m_pDlgHDSettingParm->m_bEnableAutoCopy);				// ly,2025.07.07
 	DDX_Text(pDX, IDC_EDIT_COPY_TOOL_EXE_PATH, m_pDlgHDSettingParm->m_strCopyToolExePath);
 	DDX_Text(pDX, IDC_EDIT_COPY_TOOL_CONFIG_PATH, m_pDlgHDSettingParm->m_strCopyToolConfigPath);
@@ -142,7 +144,7 @@
 
 	return TRUE;
 }
-// CViewHWSetting 皋矫瘤 贸府扁涝聪促.
+// CViewHWSetting 鐨嬬煫鐦� 璐稿簻鎵佹稘鑱績.
 
 
 void CViewMain_HWSetting::Init_LightGrid()
@@ -171,7 +173,7 @@
 	lf.lfItalic = 0;
 	lf.lfHeight = 14;
 	lf.lfWeight = FW_BOLD;
-	_tcscpy(lf.lfFaceName, _T("Arial"));
+	_tcscpy_s(lf.lfFaceName, LF_FACESIZE, _T("Arial"));
 
 	m_LightGrid.GetDefaultCell(TRUE, FALSE)->SetFont(&lf);
 	m_LightGrid.GetDefaultCell(FALSE, TRUE)->SetFont(&lf);
@@ -228,7 +230,7 @@
 	lf.lfItalic = 0;
 	lf.lfHeight = 14;
 	lf.lfWeight = FW_BOLD;
-	_tcscpy(lf.lfFaceName, _T("Arial"));
+	_tcscpy_s(lf.lfFaceName, LF_FACESIZE, _T("Arial"));
 
 	m_CameraGrid.GetDefaultCell(TRUE, FALSE)->SetFont(&lf);
 	m_CameraGrid.GetDefaultCell(FALSE, TRUE)->SetFont(&lf);
@@ -371,21 +373,27 @@
 	int			iCam,iScan,i;
 	int			iRow,iCol;
 	CString		str;		
-	const   TCHAR* SET_CAMERA_DIR[] = {_T("Top"),_T("Bottom")};
+	const   TCHAR* SET_CAMERA_DIR[] = {_T("Top"),_T("Bottom"),_T("Side") };
 	const   TCHAR* SET_INS_DIR[] = {_T("Long"),_T("Short")};	
-	const   TCHAR* SET_INS_DIMENSION[] = {_T("A Top"),_T("B Top"),_T("C Top"),_T("D Top"),_T("A Bot"),_T("B Bot"),_T("C Bot"),_T("D Bot")};	
+	const TCHAR* SET_INS_DIMENSION[] = {
+		_T("A Top"), _T("B Top"), _T("C Top"), _T("D Top"),
+		_T("A Bot"), _T("B Bot"), _T("C Bot"), _T("D Bot"),
+		_T("A RIP"), _T("B RIP"), _T("C RIP"), _T("D RIP")
+	};
+
 	CStringArray	arrDir,arrInsDir,arrDimension;
 	CGridCellCombo *pCell;		
 	
-	for(i=0;i<2;i++)
-	{
-		arrDir.Add(SET_CAMERA_DIR[i]);		
-		arrInsDir.Add(SET_INS_DIR[i]);		
-	}	
-	for(i=0;i<8;i++)
-	{
-		arrDimension.Add(SET_INS_DIMENSION[i]);				
-	}	
+	for (i = 0; i < 3; i++) {
+		arrDir.Add(SET_CAMERA_DIR[i]);
+	}
+
+	for (i = 0; i < 2; i++) {
+		arrInsDir.Add(SET_INS_DIR[i]);
+	}
+	for (i = 0; i < 12; i++) {
+		arrDimension.Add(SET_INS_DIMENSION[i]);
+	}
 	
 	if(bWrite == TRUE)
 	{
@@ -415,7 +423,8 @@
 				switch(pCamera->m_enCamDir)
 				{
 				case CAMDIR_TOP: str.Format(_T("%s"),SET_CAMERA_DIR[0]); break;
-				case CAMDIR_BOTTOM: str.Format(_T("%s"),SET_CAMERA_DIR[1]); break;				
+				case CAMDIR_BOTTOM: str.Format(_T("%s"),SET_CAMERA_DIR[1]); break;
+				case CAMDIR_SIDE: str.Format(_T("%s"), SET_CAMERA_DIR[2]); break;
 				default: str.Format(_T("%s"),_T("No")); break;
 				}			
 				m_CameraGrid.SetItemText(iRow,iCol,str);	
@@ -445,13 +454,17 @@
 				switch(pCamera->m_eDimension)
 				{
 				case DIMENSION_A: str.Format(_T("%s"),SET_INS_DIMENSION[0]); break;
-				case DIMENSION_B: str.Format(_T("%s"),SET_INS_DIMENSION[1]); break;				
-				case DIMENSION_C: str.Format(_T("%s"),SET_INS_DIMENSION[2]); break;				
-				case DIMENSION_D: str.Format(_T("%s"),SET_INS_DIMENSION[3]); break;				
-				case DIMENSION_A_DN: str.Format(_T("%s"),SET_INS_DIMENSION[4]); break;				
-				case DIMENSION_B_DN: str.Format(_T("%s"),SET_INS_DIMENSION[5]); break;				
-				case DIMENSION_C_DN: str.Format(_T("%s"),SET_INS_DIMENSION[6]); break;				
-				case DIMENSION_D_DN: str.Format(_T("%s"),SET_INS_DIMENSION[7]); break;				
+				case DIMENSION_B: str.Format(_T("%s"),SET_INS_DIMENSION[1]); break;
+				case DIMENSION_C: str.Format(_T("%s"),SET_INS_DIMENSION[2]); break;
+				case DIMENSION_D: str.Format(_T("%s"),SET_INS_DIMENSION[3]); break;
+				case DIMENSION_A_DN: str.Format(_T("%s"),SET_INS_DIMENSION[4]); break;
+				case DIMENSION_B_DN: str.Format(_T("%s"),SET_INS_DIMENSION[5]); break;
+				case DIMENSION_C_DN: str.Format(_T("%s"),SET_INS_DIMENSION[6]); break;
+				case DIMENSION_D_DN: str.Format(_T("%s"),SET_INS_DIMENSION[7]); break;
+				case DIMENSION_A_RIP: str.Format(_T("%s"), SET_INS_DIMENSION[8]); break;
+				case DIMENSION_B_RIP: str.Format(_T("%s"), SET_INS_DIMENSION[9]); break;
+				case DIMENSION_C_RIP: str.Format(_T("%s"), SET_INS_DIMENSION[10]); break;
+				case DIMENSION_D_RIP: str.Format(_T("%s"), SET_INS_DIMENSION[11]); break;
 				default: str.Format(_T("%s"),_T("No")); break;
 				}			
 				m_CameraGrid.SetItemText(iRow,iCol,str);	
@@ -658,23 +671,19 @@
 
 void CViewMain_HWSetting::UpdateControlValue(BOOL bWrite)
 {
-	if(bWrite == TRUE)
-	{
+	if(bWrite == TRUE) {
 		UpdateData(FALSE);
 		FillLightGrid(TRUE);
 		FillCameraGrid(TRUE);
 
 		((CComboBox*)(GetDlgItem(IDC_COMBO_BORAD_TYPE)))->SetCurSel((int)m_pDlgHDSettingParm->m_nBoardType);		
 	}
-	else
-	{
+	else {
 		UpdateData(TRUE);
 		FillLightGrid(FALSE);
 		FillCameraGrid(FALSE);
-		if(m_pHDSetting != NULL)
-		{
+		if(m_pHDSetting != NULL) {
 			m_pDlgHDSettingParm->m_nBoardType = (BOARD_TYPE)((CComboBox*)(GetDlgItem(IDC_COMBO_BORAD_TYPE)))->GetCurSel();
-
 			*m_pHDSetting = *m_pDlgHDSettingParm;
 		}
 	}
@@ -710,40 +719,30 @@
 	CreateDirectory(_T("C:\\EdgeInspector_App\\Config"),NULL);
 	CreateDirectory(_T("C:\\EdgeInspector_App\\Config\\Backup"),NULL);
 
-	CTime currentTime = CTime::GetCurrentTime();
-	
 	CString	str;
-
-	str.Format(_T("%s\\HardwareSetting_%02d%02d%02d_%02d%02d%02d.cfg"), HARDWARE_SETTING_BACKUP_DIR_PATH
-																		, currentTime.GetYear()
-																		, currentTime.GetMonth()
-																		, currentTime.GetDay()
-																		, currentTime.GetHour()
-																		, currentTime.GetMinute()
-																		, currentTime.GetSecond());
+	CTime time = CTime::GetCurrentTime();
+	str.Format(_T("%s\\HardwareSetting_%02d%02d%02d_%02d%02d%02d.cfg"), HARDWARE_SETTING_BACKUP_DIR_PATH, time.GetYear(), time.GetMonth(), time.GetDay(), time.GetHour(), time.GetMinute(), time.GetSecond());
 
 	UpdateControlValue(FALSE);	
-	if(m_pHDSetting->WriteHardwareSettingsFile(str) == FALSE)
-	{
+	if(m_pHDSetting->WriteHardwareSettingsFile(str) == FALSE) {
 		AfxMessageBox(_T("Save Fail!"));
 	}
 }
 
 void CViewMain_HWSetting::ClickHWSaveButton()
 {
-	if(m_pHDSetting == NULL)
+	if (m_pHDSetting == NULL) {
 		return;
+	}
 
-	if (IDYES == AfxMessageBox(_T("Do you want to save? \n Restarting is required to change settings."), MB_YESNO | MB_ICONQUESTION))
-	{
+	if (IDYES == AfxMessageBox(_T("Do you want to save? \n Restarting is required to change settings."), MB_YESNO | MB_ICONQUESTION)) {
 		UpdateControlValue(FALSE);
-		
-		if(m_pHDSetting->WriteHardwareSettingsFile(HARDWARE_SETTING_PATH) == FALSE)// if(m_pHDSetting->WriteHardwareSettingsRegistry() == FALSE)
-		{
-			AfxMessageBox(_T("Save Fail!"));
+		g_pLog->DisplayMessage(_T("Saving HW settings file[%s]..."), HARDWARE_SETTING_PATH);
+		if (m_pHDSetting->WriteHardwareSettingsFile(HARDWARE_SETTING_PATH) == FALSE) {
+			g_pLog->DisplayMessage(_T("Failed to save hardware settings file!"));
 			return;
 		}
-		SaveHardwareFileBackup();		
+		SaveHardwareFileBackup();
 	}
 }
 
@@ -806,7 +805,7 @@
 void CViewMain_HWSetting::OnClickBrowseCopyToolConfig()
 {
 	CString strFilePath;
-	CFileDialog dlg(TRUE, NULL, NULL, OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, _T("Config Files (*.ffs_real;*.json;*.xml)|*.ffs_real;*.json;*.xml||"), this);
+	CFileDialog dlg(TRUE, NULL, NULL, OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, _T("Config Files (*.ffs_real;*.json;*.xml;*.ini;*.cfg)|*.ffs_real;*.json;*.xml;*.ini;*.cfg||"), this);
 	if (dlg.DoModal() == IDOK) {
 		strFilePath = dlg.GetPathName();
 		m_pDlgHDSettingParm->m_strCopyToolConfigPath = strFilePath;
@@ -828,7 +827,7 @@
 void CViewMain_HWSetting::OnClickBrowseDeleteToolConfig()
 {
 	CString strFilePath;
-	CFileDialog dlg(TRUE, NULL, NULL, OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, _T("Config Files (*.ffs_real;*.json;*.xml;*.ini)|*.ffs_real;*.json;*.xml;*.ini||"), this);
+	CFileDialog dlg(TRUE, NULL, NULL, OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, _T("Config Files (*.ffs_real;*.json;*.xml;*.ini;*.cfg)|*.ffs_real;*.json;*.xml;*.ini;*.cfg||"), this);
 	if (dlg.DoModal() == IDOK) {
 		strFilePath = dlg.GetPathName();
 		m_pDlgHDSettingParm->m_strDeleteToolConfigPath = strFilePath;

--
Gitblit v1.9.3