From 4e3e35378d8c677397ece01378582b89869b572a Mon Sep 17 00:00:00 2001
From: mrDarker <mr.darker@163.com>
Date: 星期三, 09 七月 2025 17:25:00 +0800
Subject: [PATCH] 创建 IV2M_LoadImageFromFolder 函数,提取重复代码,新增产品ID自动提取
---
/dev/null | 0
ENRIT/View/ViewScanImage.cpp | 17 ++++-
ENRIT/MainFrm.cpp | 113 +++++++++++++++++++++++++++++++++++++
ENRIT/Define/Global_Define.h | 1
ENRIT/MainFrm.h | 3 +
5 files changed, 128 insertions(+), 6 deletions(-)
diff --git a/.vs/ENRIT/CopilotIndices/17.13.441.19478/CodeChunks.db b/.vs/ENRIT/CopilotIndices/17.13.441.19478/CodeChunks.db
deleted file mode 100644
index aa2ece2..0000000
--- a/.vs/ENRIT/CopilotIndices/17.13.441.19478/CodeChunks.db
+++ /dev/null
Binary files differ
diff --git a/.vs/ENRIT/CopilotIndices/17.13.441.19478/SemanticSymbols.db b/.vs/ENRIT/CopilotIndices/17.13.441.19478/SemanticSymbols.db
deleted file mode 100644
index 4955d15..0000000
--- a/.vs/ENRIT/CopilotIndices/17.13.441.19478/SemanticSymbols.db
+++ /dev/null
Binary files differ
diff --git a/.vs/ENRIT/FileContentIndex/2a67161d-eeaf-477b-9b1f-845d8fa24339.vsidx b/.vs/ENRIT/FileContentIndex/2a67161d-eeaf-477b-9b1f-845d8fa24339.vsidx
deleted file mode 100644
index f15a116..0000000
--- a/.vs/ENRIT/FileContentIndex/2a67161d-eeaf-477b-9b1f-845d8fa24339.vsidx
+++ /dev/null
Binary files differ
diff --git a/.vs/ENRIT/v17/Browse.VC.db b/.vs/ENRIT/v17/Browse.VC.db
deleted file mode 100644
index 8e7081b..0000000
--- a/.vs/ENRIT/v17/Browse.VC.db
+++ /dev/null
Binary files differ
diff --git a/.vs/ENRIT/v17/DocumentLayout.backup.json b/.vs/ENRIT/v17/DocumentLayout.backup.json
deleted file mode 100644
index f2e523f..0000000
--- a/.vs/ENRIT/v17/DocumentLayout.backup.json
+++ /dev/null
@@ -1,88 +0,0 @@
-{
- "Version": 1,
- "WorkspaceRootPath": "D:\\WorkCode\\ENRIT\\",
- "Documents": [
- {
- "AbsoluteMoniker": "D:0:0:{36F8EDF1-9D70-4496-B465-AFA0FAB6F7EB}|BlVisionPro\\BlVisionPro.vcxproj|D:\\WorkCode\\ENRIT\\BlVisionPro\\BlVisionPro.h||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}",
- "RelativeMoniker": "D:0:0:{36F8EDF1-9D70-4496-B465-AFA0FAB6F7EB}|BlVisionPro\\BlVisionPro.vcxproj|solutionrelative:BlVisionPro\\BlVisionPro.h||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}"
- },
- {
- "AbsoluteMoniker": "D:0:0:{36F8EDF1-9D70-4496-B465-AFA0FAB6F7EB}|BlVisionPro\\BlVisionPro.vcxproj|D:\\WorkCode\\ENRIT\\BlVisionPro\\IncludeVision.h||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}",
- "RelativeMoniker": "D:0:0:{36F8EDF1-9D70-4496-B465-AFA0FAB6F7EB}|BlVisionPro\\BlVisionPro.vcxproj|solutionrelative:BlVisionPro\\IncludeVision.h||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}"
- }
- ],
- "DocumentGroupContainers": [
- {
- "Orientation": 0,
- "VerticalTabListWidth": 256,
- "DocumentGroups": [
- {
- "DockedWidth": 200,
- "SelectedChildIndex": 2,
- "Children": [
- {
- "$type": "Bookmark",
- "Name": "ST:0:0:{3ae79031-e1bc-11d0-8f78-00a0c9110057}"
- },
- {
- "$type": "Bookmark",
- "Name": "ST:0:0:{1c4feeaa-4718-4aa9-859d-94ce25d182ba}"
- },
- {
- "$type": "Document",
- "DocumentIndex": 0,
- "Title": "BlVisionPro.h",
- "DocumentMoniker": "D:\\WorkCode\\ENRIT\\BlVisionPro\\BlVisionPro.h",
- "RelativeDocumentMoniker": "BlVisionPro\\BlVisionPro.h",
- "ToolTip": "D:\\WorkCode\\ENRIT\\BlVisionPro\\BlVisionPro.h",
- "RelativeToolTip": "BlVisionPro\\BlVisionPro.h",
- "ViewState": "AgIAAAYAAAAAAAAAAAAiwAAAAAAAAAAAAAAAAA==",
- "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000680|",
- "WhenOpened": "2025-06-04T08:27:51.477Z",
- "EditorCaption": ""
- },
- {
- "$type": "Document",
- "DocumentIndex": 1,
- "Title": "IncludeVision.h",
- "DocumentMoniker": "D:\\WorkCode\\ENRIT\\BlVisionPro\\IncludeVision.h",
- "RelativeDocumentMoniker": "BlVisionPro\\IncludeVision.h",
- "ToolTip": "D:\\WorkCode\\ENRIT\\BlVisionPro\\IncludeVision.h",
- "RelativeToolTip": "BlVisionPro\\IncludeVision.h",
- "ViewState": "AgIAAGwAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAA==",
- "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000680|",
- "WhenOpened": "2025-06-04T08:26:26.236Z",
- "EditorCaption": ""
- }
- ]
- },
- {
- "DockedWidth": 200,
- "SelectedChildIndex": -1,
- "Children": [
- {
- "$type": "Bookmark",
- "Name": "ST:0:0:{d78612c7-9962-4b83-95d9-268046dad23a}"
- },
- {
- "$type": "Bookmark",
- "Name": "ST:0:0:{34e76e81-ee4a-11d0-ae2e-00a0c90fffc3}"
- },
- {
- "$type": "Bookmark",
- "Name": "ST:0:0:{28836128-fc2c-11d2-a433-00c04f72d18a}"
- },
- {
- "$type": "Bookmark",
- "Name": "ST:0:0:{68487888-204a-11d3-87eb-00c04f7971a5}"
- },
- {
- "$type": "Bookmark",
- "Name": "ST:0:0:{004be353-6879-467c-9d1e-9ac23cdf6d49}"
- }
- ]
- }
- ]
- }
- ]
-}
\ No newline at end of file
diff --git a/.vs/ENRIT/v17/DocumentLayout.json b/.vs/ENRIT/v17/DocumentLayout.json
deleted file mode 100644
index 36d5c53..0000000
--- a/.vs/ENRIT/v17/DocumentLayout.json
+++ /dev/null
@@ -1,87 +0,0 @@
-{
- "Version": 1,
- "WorkspaceRootPath": "D:\\WorkCode\\ENRIT\\",
- "Documents": [
- {
- "AbsoluteMoniker": "D:0:0:{36F8EDF1-9D70-4496-B465-AFA0FAB6F7EB}|BlVisionPro\\BlVisionPro.vcxproj|D:\\WorkCode\\ENRIT\\BlVisionPro\\BlVisionPro.h||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}",
- "RelativeMoniker": "D:0:0:{36F8EDF1-9D70-4496-B465-AFA0FAB6F7EB}|BlVisionPro\\BlVisionPro.vcxproj|solutionrelative:BlVisionPro\\BlVisionPro.h||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}"
- },
- {
- "AbsoluteMoniker": "D:0:0:{36F8EDF1-9D70-4496-B465-AFA0FAB6F7EB}|BlVisionPro\\BlVisionPro.vcxproj|D:\\WorkCode\\ENRIT\\BlVisionPro\\IncludeVision.h||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}",
- "RelativeMoniker": "D:0:0:{36F8EDF1-9D70-4496-B465-AFA0FAB6F7EB}|BlVisionPro\\BlVisionPro.vcxproj|solutionrelative:BlVisionPro\\IncludeVision.h||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}"
- }
- ],
- "DocumentGroupContainers": [
- {
- "Orientation": 0,
- "VerticalTabListWidth": 256,
- "DocumentGroups": [
- {
- "DockedWidth": 200,
- "SelectedChildIndex": 2,
- "Children": [
- {
- "$type": "Bookmark",
- "Name": "ST:0:0:{3ae79031-e1bc-11d0-8f78-00a0c9110057}"
- },
- {
- "$type": "Bookmark",
- "Name": "ST:0:0:{1c4feeaa-4718-4aa9-859d-94ce25d182ba}"
- },
- {
- "$type": "Document",
- "DocumentIndex": 0,
- "Title": "BlVisionPro.h",
- "DocumentMoniker": "D:\\WorkCode\\ENRIT\\BlVisionPro\\BlVisionPro.h",
- "RelativeDocumentMoniker": "BlVisionPro\\BlVisionPro.h",
- "ToolTip": "D:\\WorkCode\\ENRIT\\BlVisionPro\\BlVisionPro.h",
- "RelativeToolTip": "BlVisionPro\\BlVisionPro.h",
- "ViewState": "AgIAAAYAAAAAAAAAAAAiwAAAAAAAAAAAAAAAAA==",
- "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000680|",
- "WhenOpened": "2025-06-04T08:27:51.477Z",
- "EditorCaption": ""
- },
- {
- "$type": "Document",
- "DocumentIndex": 1,
- "Title": "IncludeVision.h",
- "DocumentMoniker": "D:\\WorkCode\\ENRIT\\BlVisionPro\\IncludeVision.h",
- "RelativeDocumentMoniker": "BlVisionPro\\IncludeVision.h",
- "ToolTip": "D:\\WorkCode\\ENRIT\\BlVisionPro\\IncludeVision.h",
- "RelativeToolTip": "BlVisionPro\\IncludeVision.h",
- "ViewState": "AgIAAGwAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAA==",
- "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000680|",
- "WhenOpened": "2025-06-04T08:26:26.236Z"
- }
- ]
- },
- {
- "DockedWidth": 200,
- "SelectedChildIndex": -1,
- "Children": [
- {
- "$type": "Bookmark",
- "Name": "ST:0:0:{d78612c7-9962-4b83-95d9-268046dad23a}"
- },
- {
- "$type": "Bookmark",
- "Name": "ST:0:0:{34e76e81-ee4a-11d0-ae2e-00a0c90fffc3}"
- },
- {
- "$type": "Bookmark",
- "Name": "ST:0:0:{28836128-fc2c-11d2-a433-00c04f72d18a}"
- },
- {
- "$type": "Bookmark",
- "Name": "ST:0:0:{68487888-204a-11d3-87eb-00c04f7971a5}"
- },
- {
- "$type": "Bookmark",
- "Name": "ST:0:0:{004be353-6879-467c-9d1e-9ac23cdf6d49}"
- }
- ]
- }
- ]
- }
- ]
-}
\ No newline at end of file
diff --git a/.vs/ENRIT/v17/Solution.VC.db b/.vs/ENRIT/v17/Solution.VC.db
deleted file mode 100644
index 85ad330..0000000
--- a/.vs/ENRIT/v17/Solution.VC.db
+++ /dev/null
Binary files differ
diff --git a/.vs/ENRIT/v17/fileList.bin b/.vs/ENRIT/v17/fileList.bin
deleted file mode 100644
index a65c655..0000000
--- a/.vs/ENRIT/v17/fileList.bin
+++ /dev/null
Binary files differ
diff --git a/ENRIT/Define/Global_Define.h b/ENRIT/Define/Global_Define.h
index c7a483b..0fd815b 100644
--- a/ENRIT/Define/Global_Define.h
+++ b/ENRIT/Define/Global_Define.h
@@ -257,6 +257,7 @@
virtual void IV2M_InitView(Init_View_Command eVew) = 0;
virtual void IV2M_LoadImageFullFile(int iSide, CGlass_Data *pGlassData = NULL, std::function<void(BYTE)> _Func = nullptr) = 0;
+ virtual void IV2M_LoadImageFromFolder(int iSide, const CString& strFolderPath, CGlass_Data* pGlassData = NULL, std::function<void(BYTE)> _Func = nullptr) = 0;
virtual BOOL IV2M_SaveFullImage(CString strPath,int iSide,CPoint ptStart,int nLength) = 0;
virtual BOOL IV2M_RecipeChange(CString strRecipe) = 0;
diff --git a/ENRIT/MainFrm.cpp b/ENRIT/MainFrm.cpp
index 1db8ef5..d7a1197 100644
--- a/ENRIT/MainFrm.cpp
+++ b/ENRIT/MainFrm.cpp
@@ -243,6 +243,73 @@
m_pView->SetTransferData(&m_TransferData);
}
+CString CMainFrame::GetGlassIDFromFolder(const CString& strFolderPath)
+{
+ // 查找图像文件
+ CFileFind finder;
+ BOOL bWorking = finder.FindFile(strFolderPath + _T("\\*.jpg"));
+ if (!bWorking) {
+ g_pLog->DisplayMessage(_T("No image files found in folder!"));
+ return _T("");
+ }
+
+ // 找到第一个有效文件
+ CString strGlassID;
+ while (bWorking) {
+ bWorking = finder.FindNextFile();
+ if (!finder.IsDots()) {
+ CString strFileName = finder.GetFileName();
+ int nPos = strFileName.Find(_T("__"));
+ if (nPos > 0)
+ {
+ strGlassID = strFileName.Left(nPos);
+ break;
+ }
+ }
+ }
+
+ if (strGlassID.IsEmpty()) {
+ g_pLog->DisplayMessage(_T("No valid image files found!"));
+ }
+
+ return strGlassID;
+}
+
+void CMainFrame::LoadImageSetFromFolder(const CString& strFolderPath, const CString& strGlsID, int iSide, CGlass_Data* pGlassData, std::function<void(BYTE)> _Func)
+{
+ char str_filename[200];
+ int nStartY = 0, nHeight = 0;
+ for (int j = 0; j < 6; j++) {
+ CString strPath;
+ strPath.Format(_T("%s\\%s__%s_%d.jpg"), strFolderPath, strGlsID, PANEL_SIDE[iSide], j);
+
+ USES_CONVERSION;
+ sprintf_s(str_filename, "%s", W2A(strPath));
+ if (access(str_filename, 0) == 0) {
+ nHeight = LoadFullImage(strPath, iSide, nStartY);
+ if (nHeight == -1) {
+ break;
+ }
+ nStartY += nHeight;
+ }
+ else {
+ break;
+ }
+ }
+
+ if (pGlassData != NULL) {
+ INS_EDGE_RESULT_INFO* pResInfo = pGlassData->GetEdgeResultInfo((DimensionDir)iSide);
+ if (pResInfo != NULL) {
+ pResInfo->nGlassStartLine = 0;
+ pResInfo->nGlassEndLine = nStartY;
+ }
+ }
+
+ if (_Func != nullptr) {
+ _Func(iSide);
+ }
+}
+
BOOL CMainFrame::IV2M_RecipeChange(CString strRecipe)
{
m_strReserveRecipe.Empty();
@@ -669,7 +736,7 @@
CString strGlsID, strTmp , strExt;
strExt = dlg.GetFileExt();
- strGlsID =dlg.GetFileName();
+ strGlsID = dlg.GetFileName();
strGlsID = strGlsID.Left(strGlsID.Find(_T("__")));
g_pBase->m_strHPanelID = strGlsID;
@@ -721,6 +788,50 @@
g_pLog->DisplayMessage(_T("Loading Full Image Completed"));
}
+void CMainFrame::IV2M_LoadImageFromFolder(int iSide, const CString& strFolderPath, CGlass_Data* pGlassData, std::function<void(BYTE)> _Func)
+{
+ if (IsScanNow()) {
+ g_pLog->DisplayMessage(_T("Doing Inspection"));
+ return;
+ }
+
+ if (m_bManualProcessStart == TRUE) {
+ g_pLog->DisplayMessage(_T("Doing Manual Process"));
+ return;
+ }
+
+ CFileFind finder;
+ BOOL bWorking = finder.FindFile(strFolderPath + _T("\\*.jpg"));
+ if (!bWorking) {
+ g_pLog->DisplayMessage(_T("No image files found in folder!"));
+ return;
+ }
+
+ m_bManualProcessStart = TRUE;
+ SetSlashText(GLOBAL_DEFINE::emShow, _T(""), RGB(0, 0, 0));
+ SetSlashText(GLOBAL_DEFINE::emText, _T("Image Loading Start"), RGB(0, 0, 0));
+
+ // 提取产品ID
+ CString strGlsID = GetGlassIDFromFolder(strFolderPath);
+ g_pBase->m_strHPanelID = strGlsID;
+
+ if (iSide > -1) {
+ // 单侧加载
+ LoadImageSetFromFolder(strFolderPath, strGlsID, iSide, pGlassData, _Func);
+ }
+ else {
+ // 全侧加载
+ for (int i = 0; i < MAX_PANEL_SIDE * UPDN_TYPE; i++) {
+ LoadImageSetFromFolder(strFolderPath, strGlsID, i, pGlassData, _Func);
+ }
+ }
+
+ SetSlashText(GLOBAL_DEFINE::emHide, _T("Loading Full Image Completed"), RGB(0, 0, 0));
+
+ m_bManualProcessStart = FALSE;
+ g_pLog->DisplayMessage(_T("Loading Full Image Completed"));
+}
+
void CMainFrame::DisplayMessage(TCHAR* str)
{
WriteLogManager(str);
diff --git a/ENRIT/MainFrm.h b/ENRIT/MainFrm.h
index 0b59b86..caaba75 100644
--- a/ENRIT/MainFrm.h
+++ b/ENRIT/MainFrm.h
@@ -42,6 +42,7 @@
virtual LPBYTE IV2M_GetGrabBufferByDimension(DimensionDir eDim,int iVline);
virtual BOOL IV2M_SetLiveGrabCommand(DimensionDir eDim,BOOL bStop);
virtual void IV2M_LoadImageFullFile(int iSide, CGlass_Data *pGlassData = NULL, std::function<void(BYTE)> _Func = nullptr);
+ virtual void IV2M_LoadImageFromFolder(int iSide, const CString& strFolderPath, CGlass_Data* pGlassData = NULL, std::function<void(BYTE)> _Func = nullptr);
virtual BOOL IV2M_SaveFullImage(CString strPath,int iSide,CPoint ptStart,int nLength);
virtual BOOL IV2M_RecipeChange(CString strRecipe);
virtual void IV2M_InitView(Init_View_Command eVew);
@@ -66,6 +67,8 @@
BOOL GetRegistryRcpName(CString& strRecipe);
void SetRegistryRcpName(CString strRecipe);
void ApplyViewRecipeSettingss();
+ CString GetGlassIDFromFolder(const CString& strFolderPath);
+ void LoadImageSetFromFolder(const CString& strFolderPath, const CString& strGlsID, int iSide, CGlass_Data* pGlassData, std::function<void(BYTE)> _Func);
// 积己等 皋矫瘤 甘 窃荐
protected:
diff --git a/ENRIT/View/ViewScanImage.cpp b/ENRIT/View/ViewScanImage.cpp
index 25de260..836e7cd 100644
--- a/ENRIT/View/ViewScanImage.cpp
+++ b/ENRIT/View/ViewScanImage.cpp
@@ -1276,17 +1276,24 @@
}
else if(pDlg->m_nThreadCmd == M_CMD_IMG_LOAD_ALL)
{
- if(pDlg->m_IV2M == NULL)
+ if (pDlg->m_IV2M == NULL) {
return 0;
+ }
- pDlg->m_IV2M->IV2M_LoadImageFullFile(-1,pDlg->m_pGlassData, [&] (BYTE iSide)
- {
- int iView = pDlg->GetViewIndex(iSide);
-
+ pDlg->m_IV2M->IV2M_LoadImageFullFile(-1,pDlg->m_pGlassData, [&] (BYTE iSide) {
+ int iView = pDlg->GetViewIndex(iSide);
pDlg->InitScrollInfo(iSide,0);
pDlg->m_frameImg[iView].Invalidate(FALSE);
pDlg->m_frameImg[iView].Invalidate();
});
+
+ //CString strFolderPath = _T("D:\\备份\\光检机\\EI、Rcut\\RCUT\\图片\\n8_NG");
+ //pDlg->m_IV2M->IV2M_LoadImageFromFolder(-1, strFolderPath, pDlg->m_pGlassData, [&](BYTE iSide) {
+ // int iView = pDlg->GetViewIndex(iSide);
+ // pDlg->InitScrollInfo(iSide, 0);
+ // pDlg->m_frameImg[iView].Invalidate(FALSE);
+ // pDlg->m_frameImg[iView].Invalidate();
+ //});
}
else if(pDlg->m_nThreadCmd == M_CMD_IMG_SAVE_ALL)
{
--
Gitblit v1.9.3