mrDarker
2025-07-09 4e3e35378d8c677397ece01378582b89869b572a
创建 IV2M_LoadImageFromFolder 函数,提取重复代码,新增产品ID自动提取
已删除8个文件
已修改4个文件
309 ■■■■■ 文件已修改
.vs/ENRIT/CopilotIndices/17.13.441.19478/CodeChunks.db 补丁 | 查看 | 原始文档 | blame | 历史
.vs/ENRIT/CopilotIndices/17.13.441.19478/SemanticSymbols.db 补丁 | 查看 | 原始文档 | blame | 历史
.vs/ENRIT/FileContentIndex/2a67161d-eeaf-477b-9b1f-845d8fa24339.vsidx 补丁 | 查看 | 原始文档 | blame | 历史
.vs/ENRIT/v17/Browse.VC.db 补丁 | 查看 | 原始文档 | blame | 历史
.vs/ENRIT/v17/DocumentLayout.backup.json 88 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
.vs/ENRIT/v17/DocumentLayout.json 87 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
.vs/ENRIT/v17/Solution.VC.db 补丁 | 查看 | 原始文档 | blame | 历史
.vs/ENRIT/v17/fileList.bin 补丁 | 查看 | 原始文档 | blame | 历史
ENRIT/Define/Global_Define.h 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ENRIT/MainFrm.cpp 113 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ENRIT/MainFrm.h 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ENRIT/View/ViewScanImage.cpp 17 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
.vs/ENRIT/CopilotIndices/17.13.441.19478/CodeChunks.db
Binary files differ
.vs/ENRIT/CopilotIndices/17.13.441.19478/SemanticSymbols.db
Binary files differ
.vs/ENRIT/FileContentIndex/2a67161d-eeaf-477b-9b1f-845d8fa24339.vsidx
Binary files differ
.vs/ENRIT/v17/Browse.VC.db
Binary files differ
.vs/ENRIT/v17/DocumentLayout.backup.json
ÎļþÒÑɾ³ý
.vs/ENRIT/v17/DocumentLayout.json
ÎļþÒÑɾ³ý
.vs/ENRIT/v17/Solution.VC.db
Binary files differ
.vs/ENRIT/v17/fileList.bin
Binary files differ
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;
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);
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:
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)
    {