From f8ad0695ff2431cb90640be52b523d6434bdbf83 Mon Sep 17 00:00:00 2001
From: mrDarker <mr.darker@163.com>
Date: 星期五, 22 八月 2025 15:48:03 +0800
Subject: [PATCH] Merge branch 'LWQ' into liuyang
---
EdgeInspector_App/Recipe/HardwareSettings.h | 1
EdgeInspector_App/Define/InspectionBase.cpp | 2
EdgeInspector_App/Define/InspectionBase.h | 12 +-
EdgeInspector_App/View/ViewMain_HWSetting.cpp | 3
EdgeInspector_App/Process/InspectCamera.cpp | 1
EdgeInspector_App/Data/PostProcess.h | 3
EdgeInspector_App/Define/Global_Define.h | 98 ++++++++++++------------
EdgeInspector_App/Define/StatusMonitor.cpp | 6
EdgeInspector_App/Data/PostProcess.cpp | 20 ++++
EdgeInspector_App/EdgeInspector_App.rc | 0
EdgeInspector_App/Define/StatusMonitor.h | 10 +-
EdgeInspector_App/Recipe/HardwareSettings.cpp | 34 ++++++++
EdgeInspector_App/resource.h | 2
EdgeInspector_App/BICommon.h | 2
14 files changed, 123 insertions(+), 71 deletions(-)
diff --git a/EdgeInspector_App/BICommon.h b/EdgeInspector_App/BICommon.h
index 1688d1f..55e9bd0 100644
--- a/EdgeInspector_App/BICommon.h
+++ b/EdgeInspector_App/BICommon.h
@@ -11,7 +11,7 @@
#define OFFLINE_KEY 1 //OFFLINE_KEY:1鏄绾挎ā寮�;0鏄湪绾挎ā寮�
#define MINI_LED 0 //Mini杞﹂棿
#define MINI_NOTCH 0 //Mini杞﹂棿, 鏄惁浣跨敤鍒绘Ы鍔熻兘
-#define HALCON_VISION_KEY 0 //鏄惁鍚敤HALCON
+#define HALCON_VISION_KEY 1 //鏄惁鍚敤HALCON
#define USE_WEBSOCKET 0 //鏄惁鍚敤websocket(AI)
#define USE_AI_DETECT 0 //鏄惁鍚敤AI妫�娴�
diff --git a/EdgeInspector_App/Data/PostProcess.cpp b/EdgeInspector_App/Data/PostProcess.cpp
index 513be32..a2bd149 100644
--- a/EdgeInspector_App/Data/PostProcess.cpp
+++ b/EdgeInspector_App/Data/PostProcess.cpp
@@ -656,6 +656,16 @@
int fontFace = cv::FONT_HERSHEY_TRIPLEX;
double fontScale = 0.7;
int thickness = 1;
+
+ if (m_pHardware->m_bUse_SaveDLDefectImage==TRUE)
+ {
+ if (eCategory== DefectLoc_Chip|| eCategory== DefectLoc_Crack|| eCategory == DefectLoc_Burr|| eCategory == DefectLoc_In_Chip|| eCategory == DefectLoc_In_Burr|| eCategory == DefectLoc_UserDefect)
+ {
+ CT2CA pszConvertedAnsiDLFile(strDLFile);
+ cv::String strDLFile(pszConvertedAnsiDLFile);
+ cv::imwrite(strDLFile, imgTmp);
+ }
+ }
CT2CA pszConvertedAnsiTitle(strTitle);
cv::String strCVTitle(pszConvertedAnsiTitle);
@@ -1462,16 +1472,19 @@
}
CString strSaveImagePath;
+ CString strSaveImageDLPath;
//strSaveImagePath.Format(_T("%s\\%03d_%s_%s_%s.jpg"),m_strDefectFolder,pNewDefect->m_nIdx, g_pBase->m_strHPanelID, PANEL_SIDE[pNewDefect->m_DefectInfo.m_nSideIdx], strDefectType);
strSaveImagePath.Format(_T("%s\\%s_%s_%s_%d.jpg"),m_strDefectFolder, g_pBase->m_strHPanelID, PANEL_SIDE[pDefect->m_DefectInfo.m_nSideIdx], strDefectType, pDefect->m_nIdx);
-
- CRect rectDefect;
+ strSaveImageDLPath.Format(_T("%s\\%s_%s_%s_%d.bmp"),m_strImageDLFolder, g_pBase->m_strHPanelID, PANEL_SIDE[pDefect->m_DefectInfo.m_nSideIdx], strDefectType, pDefect->m_nIdx);
+ CRect rectDefect;
rectDefect.left = DEFECTIMAGE_WIDTH/2 - pDefect->m_DefectInfo.m_rtDefectPos_pxl.Width()/2;
rectDefect.right = DEFECTIMAGE_WIDTH/2 + pDefect->m_DefectInfo.m_rtDefectPos_pxl.Width()/2;
rectDefect.top = DEFECTIMAGE_HEIGHT/2 - pDefect->m_DefectInfo.m_rtDefectPos_pxl.Height()/2;
rectDefect.bottom = DEFECTIMAGE_HEIGHT/2 + pDefect->m_DefectInfo.m_rtDefectPos_pxl.Height()/2;
CheckDirectory(strSaveImagePath);
+ CheckDirectory(strSaveImageDLPath);
+ strDLFile.Format(_T("%s"), strSaveImageDLPath);
// SaveDefectImage2(pNewDefect->m_Image,CSize(DEFECTIMAGE_WIDTH,DEFECTIMAGE_HEIGHT), rectDefect, strSaveImagePath);
SaveDefectImage_with_Title(pDefect, CSize(DEFECTIMAGE_WIDTH,DEFECTIMAGE_HEIGHT), rectDefect, strSaveImagePath);
@@ -2003,6 +2016,9 @@
m_strDefectFolder.Format(_T("%s\\IMG_DEFECT\\%s\\%s"),PATH_INSPECTION_DATA,g_pBase->m_strLoadingDay,g_pBase->m_strHPanelID);
DeleteFolder(m_strDefectFolder);
CheckDirectory(m_strDefectFolder,TRUE);
+ m_strImageDLFolder.Format(_T("%s\\IMG_DEFECT_DL\\%s\\%s"), PATH_INSPECTION_DATA, g_pBase->m_strLoadingDay, g_pBase->m_strHPanelID);
+ DeleteFolder(m_strImageDLFolder);
+ CheckDirectory(m_strImageDLFolder, TRUE);
m_strSplineFolder.Format(_T("%s\\SPLINE\\%s\\%s"),PATH_INSPECTION_DATA,g_pBase->m_strLoadingDay,g_pBase->m_strHPanelID);
CheckDirectory(m_strSplineFolder);
m_strFullImgeFolder.Format(_T("%s\\IMG_FULL\\%s\\%s"),PATH_INSPECTION_DATA,g_pBase->m_strLoadingDay,g_pBase->m_strHPanelID);
diff --git a/EdgeInspector_App/Data/PostProcess.h b/EdgeInspector_App/Data/PostProcess.h
index 807e659..623d4a2 100644
--- a/EdgeInspector_App/Data/PostProcess.h
+++ b/EdgeInspector_App/Data/PostProcess.h
@@ -74,7 +74,8 @@
CString m_strSplineFolder;
CString m_strFullImgeFolder;
CString m_strImageMarkFolder;
-
+ CString m_strImageDLFolder;
+ CString strDLFile;
void* m_pView;
};
diff --git a/EdgeInspector_App/Define/Global_Define.h b/EdgeInspector_App/Define/Global_Define.h
index 20d9aac..3df4976 100644
--- a/EdgeInspector_App/Define/Global_Define.h
+++ b/EdgeInspector_App/Define/Global_Define.h
@@ -1,4 +1,4 @@
-锘�#ifndef GLOBAL_DEFINE_H
+#ifndef GLOBAL_DEFINE_H
#define GLOBAL_DEFINE_H
#include <map>
@@ -42,11 +42,11 @@
#define CHKMAX(a,b) (((a) > (b)) ? (a) : (b))
#define CHKMIN(a,b) (((a) < (b)) ? (a) : (b))
-#define MAX_PANEL_SIDE 4 // 鎼� 鑽�
-#define UPDN_TYPE 2 // 鎯戠獚 闉嶆崬 涔愮话鐗堝揩 2 绐嶅敱鐖� 涔愮话鐗堝揩 1
+#define MAX_PANEL_SIDE 4 // 搁 荐
+#define UPDN_TYPE 2 // 惑窍 鞍捞 乐绰版快 2 窍唱父 乐绰版快 1
#define MAX_SIDE_COUNT 8
#define MAX_CORNER_DIMENSION_MEASURE_COUNT 5
-#define MAX_SIDE_DIMENSION_MEASURE_COUNT 16 // 寮ユ帾 Frame 鑽� 鐖舵��
+#define MAX_SIDE_DIMENSION_MEASURE_COUNT 16 // 弥措 Frame 荐 父怒
#define MAX_SIDE_EXCEPTION_AREA_COUNT 32
#define MAX_SIDE_USER_DEFECT_AREA_COUNT 32
@@ -87,7 +87,7 @@
enum EmSplashCmd {emShow=0, emHide, emText};
- enum ScanDirectionIns { SD_Forward = 0, SD_Backward, SD_Unknown }; // Glass 鎵侀湒 Scan 瑙勬阿.
+ enum ScanDirectionIns { SD_Forward = 0, SD_Backward, SD_Unknown }; // Glass 扁霖 Scan 规氢.
enum DimensionDir { DIMENSION_A=0, DIMENSION_B, DIMENSION_C, DIMENSION_D,DIMENSION_A_DN, DIMENSION_B_DN, DIMENSION_C_DN, DIMENSION_D_DN, DIMENSION_NONE};
enum EM_CORNER_JUDGE {A_ZONE_CRACK=0,B_ZONE_CRACK,B_ZONE_BURR,C_ZONE_CRACK,C_ZONE_BURR, D_ZONE_CRACK, EDGE_THINCRACK, CHIP_WHITE};
@@ -188,17 +188,17 @@
#define IMAGE_WIDTH 4096 // 8192//2048
#define IMAGE_HEIGHT 1024
#define MAX_IMAGE_FRAME 160//100
-#define MAX_IMAGE_FRAME_SHORT 160//100 // 寮ユ帾 姗囬キ鐑� 鑽�
-#define MAX_IMAGE_FRAME_LONG 160//100 // 寮ユ帾 姗囬キ鐑� 鑽�
+#define MAX_IMAGE_FRAME_SHORT 160//100 // 弥措 橇饭烙 荐
+#define MAX_IMAGE_FRAME_LONG 160//100 // 弥措 橇饭烙 荐
#define MAX_SIDE_INSPECT_AREA_COUNT 12
-#define MAX_IMAGE_LINE_SHORT MAX_IMAGE_FRAME_SHORT * IMAGE_HEIGHT // 寮ユ帾 鎵肩墷鑽�
-#define MAX_IMAGE_LINE_LONG MAX_IMAGE_FRAME_LONG * IMAGE_HEIGHT // 寮ユ帾 鎵肩墷鑽�
+#define MAX_IMAGE_LINE_SHORT MAX_IMAGE_FRAME_SHORT * IMAGE_HEIGHT // 弥措 扼牢荐
+#define MAX_IMAGE_LINE_LONG MAX_IMAGE_FRAME_LONG * IMAGE_HEIGHT // 弥措 扼牢荐
#define MAX_IMAGE_LINE MAX_IMAGE_LINE_LONG
#define MAX_LIMIT_LINE (MAX_IMAGE_FRAME - 1) * IMAGE_HEIGHT
-#define MAX_IMAGE_LINE_MARGIN ((MAX_IMAGE_FRAME+50) * IMAGE_HEIGHT) //(150 * IMAGE_HEIGHT) // 寮ユ帾 鎵肩墷鑽�
+#define MAX_IMAGE_LINE_MARGIN ((MAX_IMAGE_FRAME+50) * IMAGE_HEIGHT) //(150 * IMAGE_HEIGHT) // 弥措 扼牢荐
#define ALIGN_4BYTE(width) (width + 3)/4*4
#define PI 3.14159265358979323846
@@ -331,53 +331,53 @@
#define MAX_SIDE_INSPECT_TYPE 8
struct WSSendData {
- //=======================寰呭畾==========================
- //uint8_t operation; // 鎿嶄綔绗� (1瀛楄妭)
- //uint8_t operand; // 鎿嶄綔鏁� (1瀛楄妭)
- //uint16_t blockNumber; // 鍥惧儚鍧楃紪鍙� (2瀛楄妭鏃犵鍙锋暣鏁�)
- //uint32_t dataOffset; // 鏁版嵁鍋忕Щ (4瀛楄妭鏃犵鍙锋暣鏁�)
+ //=======================待定==========================
+ //uint8_t operation; // 操作符 (1字节)
+ //uint8_t operand; // 操作数 (1字节)
+ //uint16_t blockNumber; // 图像块编号 (2字节无符号整数)
+ //uint32_t dataOffset; // 数据偏移 (4字节无符号整数)
//=====================================================
- uint8_t nCheckType = 0; // 妫�娴嬬被鍨�
- uint8_t nRecipe = 0; // 閰嶆柟
- uint8_t nLineType = 0; // 绾垮埆绫诲瀷
- uint8_t nIndex = 0; // 鍥剧墖搴忓彿
- uint8_t nFrameIdx = 0; // 甯у簭鍙�
- uint8_t nScanIdx = 0; // 渚у埆
- uint8_t nNGType = 0; // NG 绫诲瀷
- uint8_t nPosition = 0; // 浣嶇疆
- uint8_t nState = 0; // 鐘舵��
- uint16_t nEdgeX = 0; // X鏂瑰悜杈圭紭鍧愭爣
- uint16_t nEdgeY = 0; // X鏂瑰悜杈圭紭鍧愭爣
- uint16_t nNPointY = 0; // Y鏂瑰悜NG鍖哄煙鍧愭爣
- uint16_t nWidth = 0; // 鍥惧儚瀹藉害
- uint16_t nHeight = 0; // 鍥惧儚楂樺害
- double dTimeStamp = 0.0; // 鏃堕棿鎴�
- uint16_t nLeft = 0; // 鍦ㄥ師鍥剧殑浣嶇疆
- uint16_t nTop = 0; // 鍦ㄥ師鍥剧殑浣嶇疆
- std::string strSN = ""; // 搴忓垪鍙�
- std::vector<char> image = {}; // 鍥惧儚鏁版嵁 (浜岃繘鍒舵暟鎹�)
+ uint8_t nCheckType = 0; // 检测类型
+ uint8_t nRecipe = 0; // 配方
+ uint8_t nLineType = 0; // 线别类型
+ uint8_t nIndex = 0; // 图片序号
+ uint8_t nFrameIdx = 0; // 帧序号
+ uint8_t nScanIdx = 0; // 侧别
+ uint8_t nNGType = 0; // NG 类型
+ uint8_t nPosition = 0; // 位置
+ uint8_t nState = 0; // 状态
+ uint16_t nEdgeX = 0; // X方向边缘坐标
+ uint16_t nEdgeY = 0; // X方向边缘坐标
+ uint16_t nNPointY = 0; // Y方向NG区域坐标
+ uint16_t nWidth = 0; // 图像宽度
+ uint16_t nHeight = 0; // 图像高度
+ double dTimeStamp = 0.0; // 时间戳
+ uint16_t nLeft = 0; // 在原图的位置
+ uint16_t nTop = 0; // 在原图的位置
+ std::string strSN = ""; // 序列号
+ std::vector<char> image = {}; // 图像数据 (二进制数据)
};
struct WSReceiveData {
- // 瀹氫箟涓�涓〃绀篘G浣嶇疆鐨勭粨鏋勪綋
+ // 定义一个表示NG位置的结构体
struct NGPosition {
- uint8_t nNGType = 0; // NG 绫诲瀷
- uint16_t nLeft = 0; // 鍦ㄥ師鍥剧殑浣嶇疆
- uint16_t nTop = 0; // 鍦ㄥ師鍥剧殑浣嶇疆
- uint16_t nRight = 0; // 鍦ㄥ師鍥剧殑浣嶇疆
- uint16_t nBottom = 0; // 鍦ㄥ師鍥剧殑浣嶇疆
+ uint8_t nNGType = 0; // NG 类型
+ uint16_t nLeft = 0; // 在原图的位置
+ uint16_t nTop = 0; // 在原图的位置
+ uint16_t nRight = 0; // 在原图的位置
+ uint16_t nBottom = 0; // 在原图的位置
};
- uint8_t nRecipe = 0; // 閰嶆柟
- uint8_t nLineType = 0; // 绾垮埆绫诲瀷
- uint8_t nIndex = 0; // 鍥剧墖搴忓彿
- uint8_t nFrameIdx = 0; // 甯у簭鍙�
- uint8_t nScanIdx = 0; // 渚у埆
- std::string strSN = ""; // 搴忓垪鍙�
- double dTimeStamp = 0.0; // 鏃堕棿鎴�
- uint8_t nGNum = 0; // NG 鏁伴噺
- std::vector<NGPosition> ngPosArray = {}; // NG 浣嶇疆鏁扮粍
+ uint8_t nRecipe = 0; // 配方
+ uint8_t nLineType = 0; // 线别类型
+ uint8_t nIndex = 0; // 图片序号
+ uint8_t nFrameIdx = 0; // 帧序号
+ uint8_t nScanIdx = 0; // 侧别
+ std::string strSN = ""; // 序列号
+ double dTimeStamp = 0.0; // 时间戳
+ uint8_t nGNum = 0; // NG 数量
+ std::vector<NGPosition> ngPosArray = {}; // NG 位置数组
};
#endif // GLOBAL_DEFINE_H
\ No newline at end of file
diff --git a/EdgeInspector_App/Define/InspectionBase.cpp b/EdgeInspector_App/Define/InspectionBase.cpp
index c14d529..db1192c 100644
--- a/EdgeInspector_App/Define/InspectionBase.cpp
+++ b/EdgeInspector_App/Define/InspectionBase.cpp
@@ -1,4 +1,4 @@
-锘�#include "stdafx.h"
+#include "stdafx.h"
#include "config.h"
const TCHAR *PANEL_SIDE[] = {_T("A_TOP"), _T("B_TOP"), _T("C_TOP"), _T("D_TOP"),_T("A_BOT"), _T("B_BOT"), _T("C_BOT"), _T("D_BOT")};
diff --git a/EdgeInspector_App/Define/InspectionBase.h b/EdgeInspector_App/Define/InspectionBase.h
index 0801f8c..737765f 100644
--- a/EdgeInspector_App/Define/InspectionBase.h
+++ b/EdgeInspector_App/Define/InspectionBase.h
@@ -1,4 +1,4 @@
-锘�// HMX64Fundamentals.h: interface for the CHMX64Fundamentals class.
+// HMX64Fundamentals.h: interface for the CHMX64Fundamentals class.
//
//////////////////////////////////////////////////////////////////////
@@ -17,17 +17,17 @@
public:
CStringArray m_strCamCCA;
CStringArray m_strCamCVI;
- int *m_pBufferSize; // Grab淇婅緫 Buffer鐙� 鍐滄墎.
- int *m_pBufferCount; // Grab Buffer鐙� 鑽�.
- int *m_pMemFrameNo; // 瑙掑姏 鐨嬭憶搴� 姗囬キ鐑� 鑽�
+ int *m_pBufferSize; // Grab俊辑 Buffer狼 农扁.
+ int *m_pBufferCount; // Grab Buffer狼 荐.
+ int *m_pMemFrameNo; // 角力 皋葛府 橇饭烙 荐
int *m_pCameraPort;
int *m_pFrameHeight;
int *m_pFrameWidth;
int *m_nBoardID;
int *m_nBoardCh;
AcqMode m_AcqMode;
- int m_nFrameDefectPixel; // 鑼� Frame鐙� 寮ユ帾 鎼獌 Pixel 鑽�
- int m_nMaxDefect; // miniont,2011-04-28, 寮ユ帾 鎼獌 淇鸿崘
+ int m_nFrameDefectPixel; // 茄 Frame狼 弥措 搬窃 Pixel 荐
+ int m_nMaxDefect; // miniont,2011-04-28, 弥措 搬窃 俺荐
int m_nCameraCount;
int m_nScanCount;
int m_nThreadCount;
diff --git a/EdgeInspector_App/Define/StatusMonitor.cpp b/EdgeInspector_App/Define/StatusMonitor.cpp
index d3b61b9..ea165b6 100644
--- a/EdgeInspector_App/Define/StatusMonitor.cpp
+++ b/EdgeInspector_App/Define/StatusMonitor.cpp
@@ -1,4 +1,4 @@
-锘�#include "StdAfx.h"
+#include "StdAfx.h"
#include "StatusMonitor.h"
@@ -66,13 +66,13 @@
TCHAR szTemp[MAX_PATH];
wcscpy_s(szTemp, MAX_PATH, strFolder);
- szTemp[strFolder.GetLength() + 1] = NULL; // NULL宸╃鍟� 婊翠亢 鐢哥虎鍟婂叿 鑼勪績.
+ szTemp[strFolder.GetLength() + 1] = NULL; // NULL巩磊啊 滴俺 甸绢啊具 茄促.
FileOp.hwnd = NULL;
FileOp.wFunc = FO_DELETE;
FileOp.pFrom = NULL;
FileOp.pTo = NULL;
- FileOp.fFlags = FOF_NOCONFIRMATION | FOF_NOERRORUI; // 鐘墷鐨嬬煫鐦ゅ晩 鏁戝搯妗e簾 姹叉播
+ FileOp.fFlags = FOF_NOCONFIRMATION | FOF_NOERRORUI; // 犬牢皋矫瘤啊 救哆档废 汲沥
FileOp.fAnyOperationsAborted = false;
FileOp.hNameMappings = NULL;
FileOp.lpszProgressTitle = NULL;
diff --git a/EdgeInspector_App/Define/StatusMonitor.h b/EdgeInspector_App/Define/StatusMonitor.h
index 7ad3b82..624fbf6 100644
--- a/EdgeInspector_App/Define/StatusMonitor.h
+++ b/EdgeInspector_App/Define/StatusMonitor.h
@@ -1,4 +1,4 @@
-锘�#pragma once
+#pragma once
#include "Singleton.h"
#include "Config.h"
@@ -16,13 +16,13 @@
#include "LicenseChecker.h"
/*
-Main Interface 鐙� Instance Pointer 鐢� 鐖辩粖 涔愮话淇�.
+Main Interface 狼 Instance Pointer 甫 爱绊 乐绰促.
-UI淇婅緫缁� Main Interface 绔嬭緹闃� 绐嶉湼鐧绘悂 鎯戦緥 鏇肩偧鎹為鑲�,
+UI俊辑绰 Main Interface 立辟阑 窍霸登搁 惑龋 曼炼捞骨肺,
-CStatusMonitor 鑲� 闃� Instance 淇� 绔嬭緹绐嶆。搴� 绐嶇
+CStatusMonitor 肺 阿 Instance 俊 立辟窍档废 窍磊
-UI 浠樹績 Interface 鐖堕潧缁拌姯 钃栨弧鏍忚仾鐦�
+UI 付促 Interface 父靛绰芭 蓖满栏聪瘪
*/
class CStatusMonitor : public Singleton<CStatusMonitor>
diff --git a/EdgeInspector_App/EdgeInspector_App.rc b/EdgeInspector_App/EdgeInspector_App.rc
index 14866ad..98dcacf 100644
--- a/EdgeInspector_App/EdgeInspector_App.rc
+++ b/EdgeInspector_App/EdgeInspector_App.rc
Binary files differ
diff --git a/EdgeInspector_App/Process/InspectCamera.cpp b/EdgeInspector_App/Process/InspectCamera.cpp
index 0f820fd..be5b2f7 100644
--- a/EdgeInspector_App/Process/InspectCamera.cpp
+++ b/EdgeInspector_App/Process/InspectCamera.cpp
@@ -4520,6 +4520,7 @@
int iFrame = stFrame.nFrameIdx;
CRect rtProcessArea = rtROI;
+
int nMinSize_X = (pNotchParam->m_nNotch_Inspect_Defect_Min_X_um / (int)m_pGlassData->GetSideData(emDim)->m_dPixelSizeX);
int nMinSize_Y = (pNotchParam->m_nNotch_Inspect_Defect_Min_Y_um / (int)m_pGlassData->GetSideData(emDim)->m_dPixelSizeY);
int nMinSize = 0;
diff --git a/EdgeInspector_App/Recipe/HardwareSettings.cpp b/EdgeInspector_App/Recipe/HardwareSettings.cpp
index e7f9f00..1d0d633 100644
--- a/EdgeInspector_App/Recipe/HardwareSettings.cpp
+++ b/EdgeInspector_App/Recipe/HardwareSettings.cpp
@@ -1041,6 +1041,10 @@
m_bEnableAutoDelete = rhs.m_bEnableAutoDelete;
m_strDeleteToolExePath = rhs.m_strDeleteToolExePath;
m_strDeleteToolConfigPath = rhs.m_strDeleteToolConfigPath;
+
+ // lwq,2025.08.04
+ m_bUse_SaveDLDefectImage = rhs.m_bUse_SaveDLDefectImage;
+
}
return *this;
}
@@ -1282,7 +1286,9 @@
str = _T("DELETETOOL_EXE_PATH");
else if ((void*)&m_strDeleteToolConfigPath == pValue)
str = _T("DELETETOOL_CONFIG_PATH");
-
+ // lwq,2025.08.04
+ else if ((void*)&m_bUse_SaveDLDefectImage == pValue)
+ str = _T("SAVE_DLDEFECT_IMAGE");
return str;
}
@@ -1465,6 +1471,11 @@
return FALSE;
BasicInfoFile.GetItemValue((TCHAR*)(LPCTSTR)str, m_strDeleteToolConfigPath, _T(""));
+ // ly,2025.08.04
+ str = GetFileString((void*)&m_bUse_SaveDLDefectImage);
+ if (str.IsEmpty() == TRUE)
+ return FALSE;
+ BasicInfoFile.GetItemValue((TCHAR*)(LPCTSTR)str, m_bUse_SaveDLDefectImage, FALSE);
return TRUE;
}
@@ -1645,6 +1656,12 @@
return FALSE;
Register.GetItemValue((TCHAR*)(LPCTSTR)str, m_strDeleteToolConfigPath, _T(""));
+ // lwq,2025.08.04
+ str = GetFileString((void*)&m_bUse_SaveDLDefectImage);
+ if (str.IsEmpty() == TRUE)
+ return FALSE;
+ Register.GetItemValue((TCHAR*)(LPCTSTR)str, m_bUse_SaveDLDefectImage, FALSE);
+
return TRUE;
}
@@ -1808,6 +1825,12 @@
return FALSE;
Register.SetItemValue((TCHAR*)(LPCTSTR)str, m_strDeleteToolConfigPath);
+ //lwq2025.08.04
+ str = GetFileString((void*)&m_bUse_SaveDLDefectImage);
+ if (str.IsEmpty() == TRUE)
+ return FALSE;
+ Register.SetItemValue((TCHAR*)(LPCTSTR)str, (int)m_bUse_SaveDLDefectImage);
+
return TRUE;
}
@@ -1953,7 +1976,7 @@
if (str.IsEmpty() == TRUE)
return FALSE;
BasicInfoFile.SetItemValue((TCHAR*)(LPCTSTR)str, (int)m_bSaveResultByHour);
-
+
// ly,2025.07.07
str = GetFileString((void*)&m_bEnableAutoCopy);
if (str.IsEmpty() == TRUE)
@@ -1980,6 +2003,13 @@
return FALSE;
BasicInfoFile.SetItemValue((TCHAR*)(LPCTSTR)str, m_strDeleteToolConfigPath);
+
+ //lwq,2025.08.04
+ str = GetFileString((void*)&m_bUse_SaveDLDefectImage);
+ if (str.IsEmpty() == TRUE)
+ return FALSE;
+ BasicInfoFile.SetItemValue((TCHAR*)(LPCTSTR)str, m_bUse_SaveDLDefectImage);
+
BasicInfoFile.WriteToFile();
return TRUE;
diff --git a/EdgeInspector_App/Recipe/HardwareSettings.h b/EdgeInspector_App/Recipe/HardwareSettings.h
index afb57c3..8f1ebe7 100644
--- a/EdgeInspector_App/Recipe/HardwareSettings.h
+++ b/EdgeInspector_App/Recipe/HardwareSettings.h
@@ -202,6 +202,7 @@
public:
BOOL m_bUse_SaveDebugImage;
+ BOOL m_bUse_SaveDLDefectImage;
public:
BOOL m_bSaveResultByHour;
diff --git a/EdgeInspector_App/View/ViewMain_HWSetting.cpp b/EdgeInspector_App/View/ViewMain_HWSetting.cpp
index 888f978..dd8d68e 100644
--- a/EdgeInspector_App/View/ViewMain_HWSetting.cpp
+++ b/EdgeInspector_App/View/ViewMain_HWSetting.cpp
@@ -82,7 +82,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_USE_SAVE_DL_IMAGE, m_pDlgHDSettingParm->m_bUse_SaveDLDefectImage);
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
diff --git a/EdgeInspector_App/resource.h b/EdgeInspector_App/resource.h
index c6d9a99..4fcc168 100644
--- a/EdgeInspector_App/resource.h
+++ b/EdgeInspector_App/resource.h
@@ -446,6 +446,8 @@
#define IDC_RDO_SIGNAL1 1181
#define IDC_CHECK_USE_SAVE_ALL_DMP 1181
#define IDC_RDO_SIGNAL2 1182
+#define IDC_CHECK_USE_SAVE_ALL_DMP2 1182
+#define IDC_CHECK_USE_SAVE_DL_IMAGE 1182
#define IDC_NEWPPID_NAME_TITLE 1201
#define IDC_EDIT_PPIDNEW_NAME 1202
#define IDC_BUTTON_LINK 1203
--
Gitblit v1.9.3