From 65d45cae3268e08a78362b608711f70483a087c0 Mon Sep 17 00:00:00 2001 From: LYW <leeyeanwoo@diteam.co.kr> Date: 수, 09 6월 2021 10:52:38 +0900 Subject: [PATCH] Ongoing50 #3428 CF AOI Review Recipe Editor 리뷰 우선순위 조건 타입 변경기능 적용 및 검증 - 우선 순위 조건 Defect Type -> Defecct Code 변경 --- ReviewSystem/include/CHReviewResult/DefectResult.h | 69 ++-- ReviewSystem/ReviewSystem/DlgDefectList.cpp | 67 +++-- ReviewSystem/CHReviewResultParser/ParsingGlassResult_CPJT.cpp | 78 +++-- ReviewSystem/include/CHReviewRecipe/RcpPriorityInfo.h | 16 ReviewSystem/CHReviewRecipe/RcpPriorityInfo.cpp | 8 ReviewSystem/CHReviewPrioritySorter/PrioritySorter_CPJT.cpp | 45 ++- ReviewSystem/CHReviewRecipe/Rcp_RsReviewManager.cpp | 32 + ReviewSystem/ReviewRecipeEditor/DlgReview.cpp | 111 ++++++--- ReviewSystem/ReviewSystem/DlgDeffectHistroy.cpp | 4 ReviewSystem/CHReviewResult/DefectResult.cpp | 2 ReviewSystem/include/CHReviewResultParser/ParsingGlassResult_CPJT.h | 233 +++++++++--------- 11 files changed, 373 insertions(+), 292 deletions(-) diff --git a/ReviewSystem/CHReviewPrioritySorter/PrioritySorter_CPJT.cpp b/ReviewSystem/CHReviewPrioritySorter/PrioritySorter_CPJT.cpp index a0f877f..162c96c 100644 --- a/ReviewSystem/CHReviewPrioritySorter/PrioritySorter_CPJT.cpp +++ b/ReviewSystem/CHReviewPrioritySorter/PrioritySorter_CPJT.cpp @@ -125,11 +125,11 @@ for(constMapDefectResultIt it=pMapDefectResult->begin();it!=pMapDefectResult->end();it++) { - //pDefectResult는 MapDefectResult<int,CDefectResult>에서 2번째 값 + //pDefectResult占쏙옙 MapDefectResult<int,CDefectResult>占쏙옙占쏙옙 2占쏙옙째 占쏙옙 pDefectResult = static_cast<CDefectResult*>(it->second); if(pDefectResult == NULL || pDefectResult->bReviewAdded==TRUE) continue; - if(pDefectResult->nDefectCode ==2) continue; //고객사 요청사항 190609 chm Crack 안찍기 + if(pDefectResult->nDefectCode ==2) continue; //占쏙옙占쏙옙占� 占쏙옙청占쏙옙占쏙옙 190609 chm Crack 占쏙옙占쏙옙占� if(pPriorityInfo->GetPriorityDefectSizeOption()) { @@ -186,13 +186,13 @@ m_vecDefectResultPtrTemp.clear(); } - // 결함 우선순위 정렬결과 출력 + // 占쏙옙占쏙옙 占쎌선占쏙옙占쏙옙 占쏙옙占식곤옙占� 占쏙옙占� CString strFilename = _T(""); //strFilename.Format(_T("C:\\Users\\dit-344\\Desktop\\testfile\\Sorting_Review.csv")); strFilename.Format(_T("D:\\Sorting_Review.csv")); SaveDefectPoint(m_vecDefectResultPtr, strFilename); - // 결과 만들기 + // 占쏙옙占� 占쏙옙占쏙옙占� return AddReviewDefectResult(); } @@ -225,11 +225,11 @@ for(constMapDefectResultIt it=pMapDefectResult->begin();it!=pMapDefectResult->end();it++) { - //pDefectResult는 MapDefectResult<int,CDefectResult>에서 2번째 값 + //pDefectResult占쏙옙 MapDefectResult<int,CDefectResult>占쏙옙占쏙옙 2占쏙옙째 占쏙옙 pDefectResult = static_cast<CDefectResult*>(it->second); if(pDefectResult == NULL) continue; - if(pDefectResult->nDefectCode == 2)continue; //고객사 요청사항 190609 chm Crack 안찍기 + if(pDefectResult->nDefectCode == 2)continue; //占쏙옙占쏙옙占� 占쏙옙청占쏙옙占쏙옙 190609 chm Crack 占쏙옙占쏙옙占� //if(pDefectResult->nLocation == DefectLoc_ASG || pDefectResult->nLocation == DefectLoc_PAD || pDefectResult->nLocation == DefectLoc_C2C) continue; @@ -286,7 +286,7 @@ m_vecDefectResultPtrTemp.clear(); } - // 결함 우선순위 정렬결과 출력 + // 占쏙옙占쏙옙 占쎌선占쏙옙占쏙옙 占쏙옙占식곤옙占� 占쏙옙占� CString strFilename = _T(""); // strFilename.Format(_T("D:\\Sorting_Wsi_temp1.csv")); // SaveDefectPoint(vecDefectResultPtrTemp1, strFilename); @@ -297,7 +297,7 @@ // strFilename.Format(_T("D:\\Sorting_Wsi.csv")); // SaveDefectPoint(m_vecDefectResultPtr, strFilename); - // 결과 만들기.. + // 占쏙옙占� 占쏙옙占쏙옙占�.. return AddWsiDefectResult(); } @@ -361,7 +361,7 @@ { const CRcpUserDefectInfo *pDefectInfo = m_pRsRcpReviewInfo->GetRcpUserDefectInfo(nPointIdx); if (pDefectInfo==NULL) continue; - if (pDefectInfo->m_nInspectionMode != 0) continue; // _T("WSI") 일 경우 continue 20181218 smok + if (pDefectInfo->m_nInspectionMode != 0) continue; // _T("WSI") 占쏙옙 占쏙옙占� continue 20181218 smok sResult.Reset(); @@ -446,7 +446,7 @@ { const CRcpUserDefectInfo *pInfo = m_pRsRcpReviewInfo->GetRcpUserDefectInfo(nPointIdx); if (pInfo==NULL) continue; - if (pInfo->m_nInspectionMode != 1) continue; // _T("REVIEW") 일 경우 continue 20181218 smok + if (pInfo->m_nInspectionMode != 1) continue; // _T("REVIEW") 占쏙옙 占쏙옙占� continue 20181218 smok sResult.Reset(); @@ -620,9 +620,16 @@ if (pPriorityInfo==NULL || pDefectResult==NULL) return FALSE; // check Type - if (pPriorityInfo->GetPriorityOpticData() != RCP_PRIORITY_ORDER_OPTIC_ALL) + + //if (pPriorityInfo->GetPriorityOpticData() != RCP_PRIORITY_ORDER_OPTIC_ALL) + //{ + // + // //if (pDefectResult->nDefectCode != pPriorityInfo->GetPriorityOpticData()) return FALSE; + //} + //210608 Defect Code 占쏙옙 채占승쇽옙 占쏙옙占쏙옙 占쏙옙청 + if (pPriorityInfo->GetPriorityDefectCode() != RCP_PRIORITY_DEFECT_CODE_ALL) { - if (pDefectResult->nDefectCode != pPriorityInfo->GetPriorityOpticData()) return FALSE; + if (pDefectResult->nDefectJudgeCode != pPriorityInfo->GetPriorityDefectCode()) return FALSE; } if (pPriorityInfo->GetPriorityGradeData() != RCP_PRIORITY_Judge_ALL) @@ -715,7 +722,7 @@ if (pPriorityInfo->GetPriorityModelData() < 0)return FALSE; - //레시피 인덱스 Model0 -> 1 그래서 -1 + //占쏙옙占쏙옙占쏙옙 占싸듸옙占쏙옙 Model0 -> 1 占쌓뤄옙占쏙옙 -1 if (pDefectResult->nMultiModel != pPriorityInfo->GetPriorityModelData() - 1)return FALSE; } @@ -824,7 +831,7 @@ if (pPriorityInfo->GetPriorityModelData() < 0)return FALSE; - //레시피 인덱스 Model0 -> 1 그래서 -1 + //占쏙옙占쏙옙占쏙옙 占싸듸옙占쏙옙 Model0 -> 1 占쌓뤄옙占쏙옙 -1 if (pDefectResult->nMultiModel != pPriorityInfo->GetPriorityModelData()-1)return FALSE; } @@ -848,7 +855,7 @@ return nTotalPointCount; } CDefectResult* pDefectResult = NULL; - const CRcpSortingInfo* pSortingInfo = m_pRsRcpReviewInfo->GetRcpWSISortInfo(); //WSI 가져다 쓰기 + const CRcpSortingInfo* pSortingInfo = m_pRsRcpReviewInfo->GetRcpWSISortInfo(); //WSI 占쏙옙占쏙옙占쏙옙 占쏙옙占쏙옙 if (pSortingInfo == NULL) return FALSE; int nCount = m_pRsRcpReviewInfo->GetRcpWsiPriorityInfoCount(); @@ -863,11 +870,11 @@ for (constMapDefectResultIt it = pMapDefectResult->begin(); it != pMapDefectResult->end(); it++) { - //pDefectResult는 MapDefectResult<int,CDefectResult>에서 2번째 값 + //pDefectResult占쏙옙 MapDefectResult<int,CDefectResult>占쏙옙占쏙옙 2占쏙옙째 占쏙옙 pDefectResult = static_cast<CDefectResult*>(it->second); if (pDefectResult == NULL) continue; - if (pDefectResult->nDefectCode == 2)continue; //고객사 요청사항 190609 chm Crack 안찍기 + if (pDefectResult->nDefectCode == 2)continue; //占쏙옙占쏙옙占� 占쏙옙청占쏙옙占쏙옙 190609 chm Crack 占쏙옙占쏙옙占� //if (pDefectResult->nLocation == DefectLoc_ASG || pDefectResult->nLocation == DefectLoc_PAD || pDefectResult->nLocation == DefectLoc_C2C) continue; @@ -924,7 +931,7 @@ m_vecDefectResultPtrTemp.clear(); } - // 결함 우선순위 정렬결과 출력 + // 占쏙옙占쏙옙 占쎌선占쏙옙占쏙옙 占쏙옙占식곤옙占� 占쏙옙占� CString strFilename = _T(""); // strFilename.Format(_T("D:\\Sorting_Wsi_temp1.csv")); // SaveDefectPoint(vecDefectResultPtrTemp1, strFilename); @@ -935,7 +942,7 @@ // strFilename.Format(_T("D:\\Sorting_Wsi.csv")); // SaveDefectPoint(m_vecDefectResultPtr, strFilename); - // 결과 만들기.. + // 占쏙옙占� 占쏙옙占쏙옙占�.. return AddWsiMultishotDefectResult(); } diff --git a/ReviewSystem/CHReviewRecipe/RcpPriorityInfo.cpp b/ReviewSystem/CHReviewRecipe/RcpPriorityInfo.cpp index 85df3be..93fe56e 100644 --- a/ReviewSystem/CHReviewRecipe/RcpPriorityInfo.cpp +++ b/ReviewSystem/CHReviewRecipe/RcpPriorityInfo.cpp @@ -13,9 +13,9 @@ void CRcpPriorityInfo::Reset() { - m_nPriorityOpticData = RCP_PRIORITY_ORDER_OPTIC_ALL; // 우선순위 optic 데이터 - m_nPriorityGrayData = RCP_PRIORITY_ORDER_GRAY_ALL; // 우선순위 gray 데이터 - m_nPriorityStackData = RCP_PRIORITY_ORDER_STACK_ALL; // 우선순위 stack 데이터 + m_nPriorityOpticData = RCP_PRIORITY_ORDER_OPTIC_ALL; // 占쎌선占쏙옙占쏙옙 optic 占쏙옙占쏙옙占쏙옙 + m_nPriorityGrayData = RCP_PRIORITY_ORDER_GRAY_ALL; // 占쎌선占쏙옙占쏙옙 gray 占쏙옙占쏙옙占쏙옙 + m_nPriorityStackData = RCP_PRIORITY_ORDER_STACK_ALL; // 占쎌선占쏙옙占쏙옙 stack 占쏙옙占쏙옙占쏙옙 m_nPriorityDefectType = RCP_PRIORITY_ORDER_PARTICLE; m_nPriorityModelData = RCP_PRIORITY_MODEL_TYPE_ALL; m_nDefectGradeData = RCP_PRIORITY_Judge_ALL; @@ -24,7 +24,7 @@ m_bUseSizeOption = FALSE; m_nDefectumMinSize = 0; m_nDefectumMaxSize = 99999; - + m_nPriorityDefectCode = RCP_PRIORITY_DEFECT_CODE_ALL; //20210608 } void CRcpPriorityInfo::SetInfo(const CRcpPriorityInfo& rhs) diff --git a/ReviewSystem/CHReviewRecipe/Rcp_RsReviewManager.cpp b/ReviewSystem/CHReviewRecipe/Rcp_RsReviewManager.cpp index 0319682..d2b73b9 100644 --- a/ReviewSystem/CHReviewRecipe/Rcp_RsReviewManager.cpp +++ b/ReviewSystem/CHReviewRecipe/Rcp_RsReviewManager.cpp @@ -9,7 +9,7 @@ { } -void CRcp_RsReviewManager::SetFlanFile(CMacroFile& macroFile)//0117 공유메모리 플랜 +void CRcp_RsReviewManager::SetFlanFile(CMacroFile& macroFile)//0117 占쏙옙占쏙옙占쌨몌옙 占시뤄옙 { int nPlanIdx, nSlotIdx, nLightIdx, nAFMRecipeIdx, nUserDefectIdx, nReflowParameterIdx, nLightIdxWsi, nAFMRecipeIdxWsi; int nPlanCount, nLightCount, nAFMRecipeCount, nUserDefectCount, nLightCountWsi, nAFMRecipeCountWsi; @@ -120,8 +120,11 @@ const CRcpPriorityInfo *pRcpPriorityInfo = m_rsRcpReviewInfo.GetRcpPriorityInfo(nPriorityIdx); if (pRcpPriorityInfo==NULL) continue; - strItem.Format(_T("RCP_REVIEW_PRIORITY_OPTIC_DATA_%02d"), nPriorityIdx); - macroFile.SetItem(strItem, pRcpPriorityInfo->GetPriorityOpticData()); + /* strItem.Format(_T("RCP_REVIEW_PRIORITY_OPTIC_DATA_%02d"), nPriorityIdx); + macroFile.SetItem(strItem, pRcpPriorityInfo->GetPriorityOpticData());*/ + strItem.Format(_T("RCP_REVIEW_PRIORITY_DEFECTCODE_DATA_%02d"), nPriorityIdx); + macroFile.SetItem(strItem, pRcpPriorityInfo->GetPriorityDefectCode()); + strItem.Format(_T("RCP_REVIEW_PRIORITY_USE_SIZEOPTION_%02d"), nPriorityIdx); macroFile.SetItem(strItem, pRcpPriorityInfo->GetPriorityDefectSizeOption()); @@ -187,7 +190,7 @@ strItem.Format(_T("RCP_REVIEW_DEFOCUS_VALUE")); macroFile.SetItem(strItem, m_rsRcpReviewInfo.GetDefocusValue()); - // wsi 우선순위 + // wsi 占쎌선占쏙옙占쏙옙 // Priority int nWsiPriorityCount = m_rsRcpReviewInfo.GetRcpWsiPriorityInfoCount(); strItem.Format(_T("RCP_WSI_PRIORITY_COUNT")); @@ -198,8 +201,11 @@ const CRcpPriorityInfo *pRcpPriorityInfo = m_rsRcpReviewInfo.GetRcpWsiPriorityInfo(nPriorityIdx); if (pRcpPriorityInfo==NULL) continue; - strItem.Format(_T("RCP_WSI_PRIORITY_DEFECT_TYPE_%02d"), nPriorityIdx); - macroFile.SetItem(strItem, pRcpPriorityInfo->GetPriorityOpticData()); + //strItem.Format(_T("RCP_WSI_PRIORITY_DEFECT_TYPE_%02d"), nPriorityIdx); + //macroFile.SetItem(strItem, pRcpPriorityInfo->GetPriorityOpticData()); + + strItem.Format(_T("RCP_WSI_PRIORITY_DEFECTCODE_DATA_%02d"), nPriorityIdx);//20210608 + macroFile.SetItem(strItem, pRcpPriorityInfo->GetPriorityDefectCode()); strItem.Format(_T("RCP_WSI_PRIORITY_USE_SIZEOPTION_%02d"), nPriorityIdx); macroFile.SetItem(strItem, pRcpPriorityInfo->GetPriorityDefectSizeOption()); @@ -765,9 +771,12 @@ if(pRcpPriorityInfo == NULL) continue; int nData = 0; - strItem.Format(_T("RCP_REVIEW_PRIORITY_OPTIC_DATA_%02d"), nPriorityIdx); + /*strItem.Format(_T("RCP_REVIEW_PRIORITY_OPTIC_DATA_%02d"), nPriorityIdx); //210608 macroFile.GetItem(strItem, nData); - pRcpPriorityInfo->SetPriorityOpticData(nData); + pRcpPriorityInfo->SetPriorityOpticData(nData);*/ + strItem.Format(_T("RCP_REVIEW_PRIORITY_DEFECTCODE_DATA_%02d"), nPriorityIdx); //210608 + macroFile.GetItem(strItem, nData); + pRcpPriorityInfo->SetPriorityDefectCode(nData); strItem.Format(_T("RCP_REVIEW_PRIORITY_USE_SIZEOPTION_%02d"), nPriorityIdx); macroFile.GetItem(strItem, nData); @@ -860,9 +869,12 @@ if(pRcpPriorityInfo == NULL) continue; int nData = 0; - strItem.Format(_T("RCP_WSI_PRIORITY_DEFECT_TYPE_%02d"), nPriorityIdx); + /*strItem.Format(_T("RCP_WSI_PRIORITY_DEFECT_TYPE_%02d"), nPriorityIdx); macroFile.GetItem(strItem, nData); - pRcpPriorityInfo->SetPriorityOpticData(nData); + pRcpPriorityInfo->SetPriorityOpticData(nData);*/ + strItem.Format(_T("RCP_WSI_PRIORITY_DEFECTCODE_DATA_%02d"), nPriorityIdx); //210608 + macroFile.GetItem(strItem, nData); + pRcpPriorityInfo->SetPriorityDefectCode(nData); strItem.Format(_T("RCP_WSI_PRIORITY_USE_SIZEOPTION_%02d"), nPriorityIdx); macroFile.GetItem(strItem, nData); diff --git a/ReviewSystem/CHReviewResult/DefectResult.cpp b/ReviewSystem/CHReviewResult/DefectResult.cpp index 595590c..ab25b2f 100644 --- a/ReviewSystem/CHReviewResult/DefectResult.cpp +++ b/ReviewSystem/CHReviewResult/DefectResult.cpp @@ -145,4 +145,6 @@ m_bClusterCore = FALSE; nDefectWBType = 0; + nDefectJudgeCode = 0; + strDefectJudgeCode = _T(""); } diff --git a/ReviewSystem/CHReviewResultParser/ParsingGlassResult_CPJT.cpp b/ReviewSystem/CHReviewResultParser/ParsingGlassResult_CPJT.cpp index f8007d5..605df49 100644 --- a/ReviewSystem/CHReviewResultParser/ParsingGlassResult_CPJT.cpp +++ b/ReviewSystem/CHReviewResultParser/ParsingGlassResult_CPJT.cpp @@ -11,7 +11,7 @@ { } -// [2017:5:12]-[WEZASW] : DFS Result File Format 변경 +// [2017:5:12]-[WEZASW] : DFS Result File Format 占쏙옙占쏙옙 void CParsingGlassResult_CPJT::ParsingFileToGlassResult(CGlassResult* pGlassResult, CResultFileManager* pResultFileMgr)//Cmark { if(pGlassResult==NULL || pResultFileMgr==NULL) @@ -61,7 +61,7 @@ //========================= - #pragma region 옛날 코드 + #pragma region 占쏙옙占쏙옙 占쌘듸옙 //cellResult.strCellID = pResultFileMgr->GetRawData(eCSOTRaw_PanelInfoData, nCellIdx, eCSOTRaw_Panel_CellNum); // No.1 Cell Number // No.1 Cell Number //cellResult.nDefectCount = atoi(pResultFileMgr->GetRawData(eCSOTRaw_PanelInfoData, nCellIdx, eCSOTRaw_Panel_RearCPDefectNum)); // No.2 Defect Count @@ -84,9 +84,9 @@ //========================= - pGlassResult->AddCellResult(cellResult); // 추가 + pGlassResult->AddCellResult(cellResult); // 占쌩곤옙 - // 예외처리 : PNL Total 수량과 실제 불량 개수 확인 + // 占쏙옙占쏙옙처占쏙옙 : PNL Total 占쏙옙占쏙옙占쏙옙 占쏙옙占쏙옙 占쌀뤄옙 占쏙옙占쏙옙 확占쏙옙 if (nTotalDefectIdx+cellResult.nDefectCount > nDefectRawDataCount) { continue; } @@ -103,7 +103,7 @@ // pDefectResult->nDefectidx1 = atoi( pResultFileMgr->GetDefectData(nDefIdx,1)); // pDefectResult->nDefectidx2 = atoi(pResultFileMgr->GetDefectData(nDefIdx,2)); - //pDefectResult->strDefectCode = pResultFileMgr->GetRawData(eCSOTRaw_DefectInfoData, nTotalDefectIdx, eCSOTRaw_Defect_Code); // No.1 결함코드1 + //pDefectResult->strDefectCode = pResultFileMgr->GetRawData(eCSOTRaw_DefectInfoData, nTotalDefectIdx, eCSOTRaw_Defect_Code); // No.1 占쏙옙占쏙옙占쌘듸옙1 pDefectResult->strDefectCode.TrimRight(); pDefectResult->nDefectCode = GetDefectCodeType( pGlassResult->m_strRecipeID, pDefectResult->strDefectCode ); @@ -125,7 +125,7 @@ - //pDefectResult->strDefectType = pResultFileMgr->GetRawData(eCSOTRaw_DefectInfoData, nTotalDefectIdx, eCSOTRaw_Defect_AOI_DEFECT_TYPE); // No.7 결함 Type // A - N: Normal, C: Common, M: Mask + //pDefectResult->strDefectType = pResultFileMgr->GetRawData(eCSOTRaw_DefectInfoData, nTotalDefectIdx, eCSOTRaw_Defect_AOI_DEFECT_TYPE); // No.7 占쏙옙占쏙옙 Type // A - N: Normal, C: Common, M: Mask pDefectResult->nDefectType = GetCSOTDefectType(pDefectResult->strDefectType); pDefectResult->nAOIArea = atof(pResultFileMgr->GetDefectData(nTotalDefectIdx, 20)); // No.5 Defect Size @@ -133,8 +133,8 @@ pDefectResult->nSizeType = GetSizeType(pDefectResult->strSizeType); - pDefectResult->nAOISizeW = atof(pResultFileMgr->GetDefectData(nTotalDefectIdx, eCPJTRaw_Defect_AOI_DEFECT_WID))*1000; // No.10 Defect’s X axis size (um) - pDefectResult->nAOISizeH = atof(pResultFileMgr->GetDefectData(nTotalDefectIdx, eCPJTRaw_Defect_AOI_DEFECT_HGT))*1000; // No.11 Defect’s Y axis size (um) + pDefectResult->nAOISizeW = atof(pResultFileMgr->GetDefectData(nTotalDefectIdx, eCPJTRaw_Defect_AOI_DEFECT_WID))*1000; // No.10 Defect占쏙옙s X axis size (um) + pDefectResult->nAOISizeH = atof(pResultFileMgr->GetDefectData(nTotalDefectIdx, eCPJTRaw_Defect_AOI_DEFECT_HGT))*1000; // No.11 Defect占쏙옙s Y axis size (um) pDefectResult->nAOISize = atof(pResultFileMgr->GetDefectData(nTotalDefectIdx, 26)); //pDefectResult->nAOISizeLength = pDefectResult->nAOISizeW; @@ -157,18 +157,18 @@ //======================= - #pragma region 옛날 코드 + #pragma region 占쏙옙占쏙옙 占쌘듸옙 /* //atoi(pResultFileMgr->GetCellData(idx,nCellIdx)); ////pDefectResult->strCellID // - pDefectResult->strDefectCode = pResultFileMgr->GetRawData(eCSOTRaw_DefectInfoData, nTotalDefectIdx, eCSOTRaw_Defect_Code); // No.1 결함코드1 + pDefectResult->strDefectCode = pResultFileMgr->GetRawData(eCSOTRaw_DefectInfoData, nTotalDefectIdx, eCSOTRaw_Defect_Code); // No.1 占쏙옙占쏙옙占쌘듸옙1 pDefectResult->strDefectCode.TrimRight(); pDefectResult->nDefectCode = GetDefectCodeType( pGlassResult->m_strRecipeID, pDefectResult->strDefectCode ); - pDefectResult->nUMCenterOriginX = atof(pResultFileMgr->GetRawData(eCSOTRaw_DefectInfoData, nTotalDefectIdx, eCSOTRaw_Defect_CenterOriX)); // No.3 Glass Center 기준 좌표 X(mm) - pDefectResult->nUMCenterOriginY = atof(pResultFileMgr->GetRawData(eCSOTRaw_DefectInfoData, nTotalDefectIdx, eCSOTRaw_Defect_CenterOriY)); // No.4 Glass Center 기준 좌표 Y(mm) + pDefectResult->nUMCenterOriginX = atof(pResultFileMgr->GetRawData(eCSOTRaw_DefectInfoData, nTotalDefectIdx, eCSOTRaw_Defect_CenterOriX)); // No.3 Glass Center 占쏙옙占쏙옙 占쏙옙표 X(mm) + pDefectResult->nUMCenterOriginY = atof(pResultFileMgr->GetRawData(eCSOTRaw_DefectInfoData, nTotalDefectIdx, eCSOTRaw_Defect_CenterOriY)); // No.4 Glass Center 占쏙옙占쏙옙 占쏙옙표 Y(mm) pDefectResult->nUMOriginX = (pGlassResult->GetGlassSizeX()/2) + pDefectResult->nUMCenterOriginX*1000; pDefectResult->nUMOriginY = (pGlassResult->GetGlassSizeY()/2) + pDefectResult->nUMCenterOriginY*1000; //pDefectResult->nUMOriginX = pDefectResult->nUMCenterOriginX*1000; @@ -180,11 +180,11 @@ pDefectResult->strSizeType = pResultFileMgr->GetRawData(eCSOTRaw_DefectInfoData, nTotalDefectIdx, eCSOTRaw_Defect_DefectSizeType); // No.6 Defect SizeType // S/M/L/O pDefectResult->nSizeType = GetSizeType(pDefectResult->strSizeType); - pDefectResult->strDefectType = pResultFileMgr->GetRawData(eCSOTRaw_DefectInfoData, nTotalDefectIdx, eCSOTRaw_Defect_DefectType); // No.7 결함 Type // A - N: Normal, C: Common, M: Mask + pDefectResult->strDefectType = pResultFileMgr->GetRawData(eCSOTRaw_DefectInfoData, nTotalDefectIdx, eCSOTRaw_Defect_DefectType); // No.7 占쏙옙占쏙옙 Type // A - N: Normal, C: Common, M: Mask pDefectResult->nDefectType = GetCSOTDefectType(pDefectResult->strDefectType); - pDefectResult->nAOISizeW = atof(pResultFileMgr->GetRawData(eCSOTRaw_DefectInfoData, nTotalDefectIdx, eCSOTRaw_Defect_SizeDX))*1000; // No.10 Defect’s X axis size (um) - pDefectResult->nAOISizeH = atof(pResultFileMgr->GetRawData(eCSOTRaw_DefectInfoData, nTotalDefectIdx, eCSOTRaw_Defect_SizeDY))*1000; // No.11 Defect’s Y axis size (um) + pDefectResult->nAOISizeW = atof(pResultFileMgr->GetRawData(eCSOTRaw_DefectInfoData, nTotalDefectIdx, eCSOTRaw_Defect_SizeDX))*1000; // No.10 Defect占쏙옙s X axis size (um) + pDefectResult->nAOISizeH = atof(pResultFileMgr->GetRawData(eCSOTRaw_DefectInfoData, nTotalDefectIdx, eCSOTRaw_Defect_SizeDY))*1000; // No.11 Defect占쏙옙s Y axis size (um) pDefectResult->nAOISize = int(pDefectResult->nAOISizeW*pDefectResult->nAOISizeH); pDefectResult->nAOISizeLength = pDefectResult->nAOISizeW; @@ -222,7 +222,7 @@ } } -// [2017:5:12]-[WEZASW] : DFS Result File Format 변경 cmark +// [2017:5:12]-[WEZASW] : DFS Result File Format 占쏙옙占쏙옙 cmark int CParsingGlassResult_CPJT::ParsingReviewResultDataToFile(CGlassResult* pGlassResult, CResultFileManager* pResultFileMgr) { if (pResultFileMgr==NULL || pGlassResult==NULL) @@ -304,7 +304,7 @@ #endif if (pResult->nDefectIdx != -1) { - // 고정리뷰일때만 + // 占쏙옙占쏙옙占쏙옙占쏙옙占싹띰옙占쏙옙 / * if( pGlassResult->GetUserResultCount() > 0 ) { @@ -407,7 +407,7 @@ return nWriteCount; } -// [2017:1:3]-[WEZASW] : WSI 측정 결과 쓰기 (사양 미정으로 기본 설정) (ING) +// [2017:1:3]-[WEZASW] : WSI 占쏙옙占쏙옙 占쏙옙占� 占쏙옙占쏙옙 (占쏙옙占� 占쏙옙占쏙옙占쏙옙占쏙옙 占썩본 占쏙옙占쏙옙) (ING) int CParsingGlassResult_CPJT::ParsingWsiResultDataToFile(CGlassResult* pGlassResult, CResultFileManager* pResultFileMgr) { @@ -433,8 +433,8 @@ if (pResultFileMgr && pResult->nDefectIdx != -1) { - // [2017:5:13]-[WEZASW] : 7개 추가 항목이었으나 고객사 제출시(최종) 삭제(미스)되어 제공되어 고객사 회신으로 추가 항목(13, 25, 26)만 적용 하기로 기술팀(김D) 협의됨. - // [2017:5:24]-[WEZASW] : AOI DFS(DFT) 항목 추가(Index 변경) + // [2017:5:13]-[WEZASW] : 7占쏙옙 占쌩곤옙 占쌓몌옙占싱억옙占쏙옙占쏙옙 占쏙옙占쏙옙占� 占쏙옙占쏙옙占�(占쏙옙占쏙옙) 占쏙옙占쏙옙(占싱쏙옙)占실억옙 占쏙옙占쏙옙占실억옙 占쏙옙占쏙옙占� 회占쏙옙占쏙옙占쏙옙 占쌩곤옙 占쌓몌옙(13, 25, 26)占쏙옙 占쏙옙占쏙옙 占싹깍옙占� 占쏙옙占쏙옙占�(占쏙옙D) 占쏙옙占실듸옙. + // [2017:5:24]-[WEZASW] : AOI DFS(DFT) 占쌓몌옙 占쌩곤옙(Index 占쏙옙占쏙옙) ///pResultFileMgr->SetRawData(eB7Raw_DefectInfoData, pResult->nTotalDefectCount, 15, int(pResult->pWsi_ResultData[Wsi_X_Height]*1000)); // No.13 Defect Height (um) ///pResultFileMgr->SetRawData(eB7Raw_DefectInfoData, pResult->nTotalDefectCount, 27, pResult->nWsi_ResultCode); // No.25 Measurement Code (Success:1 / fail:0) ///pResultFileMgr->SetRawData(eB7Raw_DefectInfoData, pResult->nTotalDefectCount, 28, int(pResult->pWsi_ResultData[Wsi_X_A_Ratio]*1000)); // No.26 Defect X axis Ration (um) @@ -703,7 +703,7 @@ // review image file name strImageFileName = pResult->strUploadImgFileName; - // [2018/02/13 22:22:06 by jylee] related RTMS 매칭, 복사 처리 + // [2018/02/13 22:22:06 by jylee] related RTMS 占쏙옙칭, 占쏙옙占쏙옙 처占쏙옙 if (pResult->nDefectIdx != -1) { CheckResultFileAndCopy( pGlassResult, pResultFileMgr, pResult, strImageFileName ); @@ -1088,7 +1088,7 @@ int CParsingGlassResult_CPJT::GetCSOTDefectCode(CString strDfectType){ //COST_CRACK=0,CSOT_PARTICLE,CSOT_MURA,CSOT_PROTRUDE,CSOT_DENT,CSOT_TFE_ABNORMAL,CSOT_BUBBLE,CSOT_SCRATCH - //Compare 대상이면 0 대상보다크면 1 작으면 -1 + //Compare 占쏙옙占쏙옙見占� 0 占쏙옙鑿릿占신⑼옙占� 1 占쏙옙占쏙옙占쏙옙 -1 if(strDfectType.Compare(_T("CRACK"))==0) { @@ -1157,7 +1157,7 @@ break; case Judge_Rework: sStr.Format("RW"); break; - case Judge_Unknown: sStr.Format("OK");//sStr.Format("Unknown"); //Unknown도 일단 OK + case Judge_Unknown: sStr.Format("OK");//sStr.Format("Unknown"); //Unknown占쏙옙 占싹댐옙 OK break; default: sStr.Format("OK");//sStr.Format("Ets"); break; @@ -1197,9 +1197,14 @@ { return DOWS; } + else + { + return CODE_DEFAULT; + } return 0; } + // [2018/03/14 09:47:51 by jylee] related Deep Learning int CParsingGlassResult_CPJT::GetDefectCodeType( const CString& strRecipeID, const CString& strValue ) @@ -1344,7 +1349,7 @@ void CParsingGlassResult_CPJT::MemoryParsingFileToGlassResult( CGlassResult* pGlassResult, CDitGlassRawClient* pDitRawClient ) { - //찐코드// + //占쏙옙占쌘듸옙// if(pGlassResult==NULL || pDitRawClient==NULL) return; CString strItem = _T(""); @@ -1376,7 +1381,7 @@ cellResult.nDefectCount = pDitRawClient->GetCellData(nCellIdx)->getTotalDefectNum(); cellResult.strCellJudge.Format(_T("%d"),pDitRawClient->GetCellData(nCellIdx)->m_nJudgement); - //20201126 CELL 좌표계를 센터좌표로 바꿈으로 내부 좌표계에서 + 글라스 사이즈/2 해야됨 + //20201126 CELL 占쏙옙표占썼를 占쏙옙占쏙옙占쏙옙표占쏙옙 占쌕뀐옙占쏙옙占쏙옙 占쏙옙占쏙옙 占쏙옙표占썼에占쏙옙 + 占쌜띰옙 占쏙옙占쏙옙占쏙옙/2 占쌔야듸옙 cellResult.nUMOriginX = pDitRawClient->GetCellData(nCellIdx)->m_rectCellLeft + pDitRawClient->GetGlassData()->m_nGlassSizeWidth/2; cellResult.nUMOriginY = pDitRawClient->GetCellData(nCellIdx)->m_rectCellTop + pDitRawClient->GetGlassData()->m_nGlassSizeHeight / 2; cellResult.nUMOriginWidth = pDitRawClient->GetCellData(nCellIdx)->m_rectCellRight - cellResult.nUMOriginX + pDitRawClient->GetGlassData()->m_nGlassSizeWidth / 2; @@ -1386,7 +1391,7 @@ CString strCellID(pDitRawClient->GetCellData(nCellIdx)->m_strCellName); cellResult.strCellID = strCellID; - pGlassResult->AddCellResult(cellResult); // 추가 + pGlassResult->AddCellResult(cellResult); // 占쌩곤옙 } pGlassResult->m_strGlassID = pDitRawClient->GetGlassData()->m_strGlassID; @@ -1414,7 +1419,7 @@ if(pDefectResult->nDefectWBType == 1 || pDefectResult->nDefectWBType == 3 || pDefectResult->nDefectWBType ==5) pDefectResult->nDefectWBType =2; else pDefectResult->nDefectWBType = 1; - //이거슨 컷오프 대상 Review 제외 210205 + //占싱거쏙옙 占싣울옙占쏙옙 占쏙옙占� Review 占쏙옙占쏙옙 210205 if (pSharedDefect->m_bDefectCutoff == 1) { continue; @@ -1431,7 +1436,10 @@ pDefectResult->nUMOriginX = pSharedDefect->m_nUMOriginX;// pDefectResult->nUMOriginY = pSharedDefect->m_nUMOriginY;// - //pDefectResult->nDefectCode = GetCodeType(pDefectResult->strDefectCode); + //20210608 占쌘듸옙占� 占쎌선占쏙옙占쏙옙 + pDefectResult->nDefectJudgeCode = GetCodeType(pSharedDefect->m_strDefectCode); + pDefectResult->strDefectJudgeCode = pSharedDefect->m_strDefectCode; + pDefectResult->nJudgeType = pSharedDefect->m_DefectJudgement; pDefectResult->strJudgeType = GetGradeType(pDefectResult->nJudgeType); @@ -1442,7 +1450,7 @@ pDefectResult->nLocation = pSharedDefect->m_sDefectLoc; - //멀티 모델별 Review/WSI 필터링을 위한 인자 + //占쏙옙티 占쏜델븝옙 Review/WSI 占쏙옙占싶몌옙占쏙옙 占쏙옙占쏙옙 占쏙옙占쏙옙 pDefectResult->nMultiModel = pSharedDefect->m_nModelIdx; if (pSharedDefect->m_DefectBDType == 1) @@ -1471,17 +1479,17 @@ ////20190311CHM - //if(pSharedDefect->m_StackInfo == 1) //스택 인데 리뷰 안함 + //if(pSharedDefect->m_StackInfo == 1) //占쏙옙占쏙옙 占싸듸옙 占쏙옙占쏙옙 占쏙옙占쏙옙 //{ - // pDefectResult->nStackType = 1; //3이 SD + // pDefectResult->nStackType = 1; //3占쏙옙 SD //} - //else if(pSharedDefect->m_StackInfo == 2) // 스택인데 리뷰 함 + //else if(pSharedDefect->m_StackInfo == 2) // 占쏙옙占쏙옙占싸듸옙 占쏙옙占쏙옙 占쏙옙 //{ // pDefectResult->nStackType = 2; //} //else //{ - // pDefectResult->nStackType = 0; //0이 ALL + // pDefectResult->nStackType = 0; //0占쏙옙 ALL //} pDefectResult->nStackType = pSharedDefect->m_StackInfo; @@ -1809,8 +1817,8 @@ //#endif // if (pResult->nResultIdx != -1) // { -// // 20170831 smok 항목 추가 DEFECT_ZONE(AA/PAD/CRACK) 31 -> 32 -// // [2017:5:24]-[WEZASW] : AOI DFS(DFT) 항목 추가(Index 변경) +// // 20170831 smok 占쌓몌옙 占쌩곤옙 DEFECT_ZONE(AA/PAD/CRACK) 31 -> 32 +// // [2017:5:24]-[WEZASW] : AOI DFS(DFT) 占쌓몌옙 占쌩곤옙(Index 占쏙옙占쏙옙) // pResultFileMgr->SetRawData(eB7Raw_DefectInfoData, nDefectCount + pResult->nResultIdx, 33, strTemp); // No.31 Image File Name // // pResultFileMgr->SetRawData(eB7Raw_DefectInfoData, nDefectCount + pResult->nResultIdx, 34, "***"); diff --git a/ReviewSystem/ReviewRecipeEditor/DlgReview.cpp b/ReviewSystem/ReviewRecipeEditor/DlgReview.cpp index 20e1726..ab0c062 100644 --- a/ReviewSystem/ReviewRecipeEditor/DlgReview.cpp +++ b/ReviewSystem/ReviewRecipeEditor/DlgReview.cpp @@ -1,4 +1,4 @@ -// DlgReview_FIC.cpp : 구현 파일입니다. +// DlgReview_FIC.cpp : 占쏙옙占쏙옙 占쏙옙占쏙옙占쌉니댐옙. // #include "stdafx.h" @@ -8,7 +8,7 @@ #include "ReviewRecipeEditorDlg.h" #include "DlgFilterSizeOption.h" -// CDlgReview 대화 상자입니다. +// CDlgReview 占쏙옙화 占쏙옙占쏙옙占쌉니댐옙. IMPLEMENT_DYNAMIC(CDlgReview, CDialog) @@ -65,12 +65,12 @@ END_MESSAGE_MAP() -// CDlgReview 메시지 처리기입니다. +// CDlgReview 占쌨쏙옙占쏙옙 처占쏙옙占쏙옙占쌉니댐옙. BOOL CDlgReview::OnInitDialog() { CDialog::OnInitDialog(); - // TODO: 여기에 추가 초기화 작업을 추가합니다. + // TODO: 占쏙옙占썩에 占쌩곤옙 占십깍옙화 占쌜억옙占쏙옙 占쌩곤옙占쌌니댐옙. InitFilterGridControl(); InitLightInfoGridControl(); InitAFMRecipeGridControl(); @@ -82,9 +82,9 @@ void CDlgReview::OnBnClickedButtonReviewReset() { - // TODO: 여기에 컨트롤 알림 처리기 코드를 추가합니다. + // TODO: 占쏙옙占썩에 占쏙옙트占쏙옙 占싯몌옙 처占쏙옙占쏙옙 占쌘드를 占쌩곤옙占쌌니댐옙. //CDialog::OnOK(); - // TODO: 여기에 컨트롤 알림 처리기 코드를 추가합니다. + // TODO: 占쏙옙占썩에 占쏙옙트占쏙옙 占싯몌옙 처占쏙옙占쏙옙 占쌘드를 占쌩곤옙占쌌니댐옙. //CDialog::OnOK(); UpdateData(FALSE); } @@ -92,7 +92,7 @@ void CDlgReview::OnBnClickedButtonReviewApply() { - // TODO: 여기에 컨트롤 알림 처리기 코드를 추가합니다. + // TODO: 占쏙옙占썩에 占쏙옙트占쏙옙 占싯몌옙 처占쏙옙占쏙옙 占쌘드를 占쌩곤옙占쌌니댐옙. //CDialog::OnCancel(); SetFilterInfo(m_nType); @@ -159,7 +159,7 @@ nDataColumnWidth = (rect.Width() - 35 - nMargin) / (PRIORITY_INFO_GRID_COL_COUNT-1); Item.col = nColIdx; - strTemp.Format(_T("Defect Type")); + strTemp.Format(_T("Defect Code")); Item.strText = strTemp; m_ctrlGridFilterinfo.SetItem(&Item); m_ctrlGridFilterinfo.SetColumnWidth(nColIdx++, nDataColumnWidth+30); @@ -244,7 +244,8 @@ if(strArrayOption.GetSize() > 0) { - strItemText = strArrayOption.GetAt(pRcpPriorityInfo->GetPriorityOpticData()); + //strItemText = strArrayOption.GetAt(pRcpPriorityInfo->GetPriorityOpticData()); + strItemText = strArrayOption.GetAt(pRcpPriorityInfo->GetPriorityDefectCode()); //WSI 占쏙옙占쏙옙占쏙옙 //20210608 m_ctrlGridFilterinfo.SetItemText(nRowIdx, nColIdx++, strItemText); } } @@ -364,7 +365,8 @@ if(strArrayOption.GetSize() > 0) { - strItemText = strArrayOption.GetAt(pRcpPriorityInfo->GetPriorityOpticData()); + //strItemText = strArrayOption.GetAt(pRcpPriorityInfo->GetPriorityOpticData()); + strItemText = strArrayOption.GetAt(pRcpPriorityInfo->GetPriorityDefectCode());//20210608 TRDF 占쏙옙占쏙옙占쏙옙 m_ctrlGridFilterinfo.SetItemText(nRowIdx, nColIdx++, strItemText); } } @@ -477,11 +479,11 @@ { UpdateData(TRUE); - //리뷰 dlg 가져오기 + //占쏙옙占쏙옙 dlg 占쏙옙占쏙옙占쏙옙占쏙옙 CReviewRecipeEditorDlg* pDlg = (CReviewRecipeEditorDlg*)AfxGetMainWnd(); if(pDlg == NULL) return; - //리뷰 매니져 + //占쏙옙占쏙옙 占신댐옙占쏙옙 CRcp_RsReviewManager* pRcpRsReviewManager = NULL; pRcpRsReviewManager = pDlg->GetRsReviewManager(); if(pRcpRsReviewManager == NULL) return; @@ -490,11 +492,11 @@ CString strTemp, strItemText; CStringArray strArrayOption; - // [2016:11:2]-[WEZASW] : WSI(1)/Review(0) Type 분리 + // [2016:11:2]-[WEZASW] : WSI(1)/Review(0) Type 占싻몌옙 if(nType) { //WSI - //조명 + //占쏙옙占쏙옙 nColIdx = 1; pRcpRsReviewManager->GetRsRcpReviewInfo()->SetRcpWsiLightInfoCount(m_nLightCount); pRcpRsReviewManager->GetRsRcpReviewInfo()->m_bAutoLightWsi = m_ctrlAutoLight.GetCheck(); @@ -520,7 +522,7 @@ nColIdx++; } - //AFM 레시피 + //AFM 占쏙옙占쏙옙占쏙옙 nRowIdx = 1; nColIdx = 1; pRcpRsReviewManager->GetRsRcpReviewInfo()->SetRcpWsiAFMRecipeInfoCount(m_nAFMCount); @@ -564,7 +566,7 @@ else { //Review - //조명 + //占쏙옙占쏙옙 nColIdx = 1; pRcpRsReviewManager->GetRsRcpReviewInfo()->SetRcpLightInfoCount(m_nLightCount); pRcpRsReviewManager->GetRsRcpReviewInfo()->m_bAutoLight = m_ctrlAutoLight.GetCheck(); @@ -590,7 +592,7 @@ nColIdx++; } - //AFM 레시피 + //AFM 占쏙옙占쏙옙占쏙옙 nRowIdx = 1; nColIdx = 1; pRcpRsReviewManager->GetRsRcpReviewInfo()->SetRcpAFMRecipeInfoCount(m_nAFMCount); @@ -635,11 +637,11 @@ { UpdateData(TRUE); - //리뷰 dlg 가져오기 + //占쏙옙占쏙옙 dlg 占쏙옙占쏙옙占쏙옙占쏙옙 CReviewRecipeEditorDlg* pDlg = (CReviewRecipeEditorDlg*)AfxGetMainWnd(); if(pDlg == NULL) return; - //리뷰 매니져 + //占쏙옙占쏙옙 占신댐옙占쏙옙 CRcp_RsReviewManager* pRcpRsReviewManager = NULL; pRcpRsReviewManager = pDlg->GetRsReviewManager(); if(pRcpRsReviewManager == NULL) return; @@ -683,7 +685,8 @@ strTemp = strArrayOption.GetAt(j); if(strTemp.Compare(strItemText) == 0) { - pRcpPriorityInfo->SetPriorityOpticData(j); + //pRcpPriorityInfo->SetPriorityOpticData(j);//20210608 + pRcpPriorityInfo->SetPriorityDefectCode(j); break; } } @@ -796,7 +799,8 @@ strTemp = strArrayOption.GetAt(j); if(strTemp.Compare(strItemText) == 0) { - pRcpPriorityInfo->SetPriorityOpticData(j); + //pRcpPriorityInfo->SetPriorityOpticData(j); //20210608 + pRcpPriorityInfo->SetPriorityDefectCode(j); break; } } @@ -930,7 +934,7 @@ const CSystemInfo *pSystemInfo = pDlg->GetSys_SystemInfo(); if (pSystemInfo==NULL) return; - int nLightCount = 0; // 헤더 갯수가 조명 설정 갯수임 + int nLightCount = 0; // 占쏙옙占� 占쏙옙占쏙옙占쏙옙 占쏙옙占쏙옙 占쏙옙占쏙옙 占쏙옙占쏙옙占쏙옙 int nGantryCount = pSystemInfo->GetGantryInfoCount(); for(int nGantryIdx=0; nGantryIdx<nGantryCount; nGantryIdx++) { @@ -961,7 +965,7 @@ Item.mask = GVIF_TEXT; Item.row = nRowIdx; Item.col = nColIdx; - strTemp.Format(_T("Index"));//_T("인덱스")); + strTemp.Format(_T("Index"));//_T("占싸듸옙占쏙옙")); Item.strText = strTemp; m_ctrlGridLightInfo.SetItem(&Item); m_ctrlGridLightInfo.SetColumnWidth(nColIdx, 100); @@ -969,28 +973,28 @@ nRowIdx++; Item.row = nRowIdx; Item.col = nColIdx; - strTemp.Format(_T("Light Level (gLv)"));//_T("광량 값")); + strTemp.Format(_T("Light Level (gLv)"));//_T("占쏙옙占쏙옙 占쏙옙")); Item.strText = strTemp; m_ctrlGridLightInfo.SetItem(&Item); nRowIdx++; Item.row = nRowIdx; Item.col = nColIdx; - strTemp.Format(_T("Min Level (gLv)"));//_T("최소 광량 값")); + strTemp.Format(_T("Min Level (gLv)"));//_T("占쌍쇽옙 占쏙옙占쏙옙 占쏙옙")); Item.strText = strTemp; m_ctrlGridLightInfo.SetItem(&Item); nRowIdx++; Item.row = nRowIdx; Item.col = nColIdx; - strTemp.Format(_T("Max Level (gLv)"));//_T("최대 광량 값")); + strTemp.Format(_T("Max Level (gLv)"));//_T("占쌍댐옙 占쏙옙占쏙옙 占쏙옙")); Item.strText = strTemp; m_ctrlGridLightInfo.SetItem(&Item); nRowIdx++; Item.row = nRowIdx; Item.col = nColIdx; - strTemp.Format(_T("Auto Light (gLv)"));//_T("자동 변경 값")); + strTemp.Format(_T("Auto Light (gLv)"));//_T("占쌘듸옙 占쏙옙占쏙옙 占쏙옙")); Item.strText = strTemp; m_ctrlGridLightInfo.SetItem(&Item); @@ -1026,7 +1030,7 @@ if(pRcpRsReviewManager == NULL) return; - // [2016:11:2]-[WEZASW] : WSI(1)/Review(0) Type 분리 + // [2016:11:2]-[WEZASW] : WSI(1)/Review(0) Type 占싻몌옙 if(nType) { m_ctrlAutoLight.SetCheck(pRcpRsReviewManager->GetRsRcpReviewInfo()->GetWsiAutoLight()); @@ -1114,7 +1118,7 @@ if (pHeaderInfo==NULL) continue; nAFMCount += pHeaderInfo->GetAFMInfoCount(); - //[2017:6:2]-[WEZASW] : SystemSetting의 배율정보 기준으로 적용(셋팅된 렌즈 배율만 선택) + //[2017:6:2]-[WEZASW] : SystemSetting占쏙옙 占쏙옙占쏙옙占쏙옙占쏙옙 占쏙옙占쏙옙占쏙옙占쏙옙 占쏙옙占쏙옙(占쏙옙占시듸옙 占쏙옙占쏙옙 占쏙옙占쏙옙占쏙옙 占쏙옙占쏙옙) nLensCount = pHeaderInfo->GetMagnificInfoCount(); for (int nLensIdx=0; nLensIdx<nLensCount; nLensIdx++) @@ -1122,7 +1126,7 @@ const CMagnificInfo* pMagnificInfo = pHeaderInfo->GetMagnificInfo(nLensIdx); if (pMagnificInfo==NULL) continue; - // 2017.12.21 smok. 두 개 이상의 gantry / header 시 AFM 배율 표시 이상. + // 2017.12.21 smok. 占쏙옙 占쏙옙 占싱삼옙占쏙옙 gantry / header 占쏙옙 AFM 占쏙옙占쏙옙 표占쏙옙 占싱삼옙. // strArrayOption[nHeaderIdx].Add(pMagnificInfo->m_strMagnificName); strArrayOption[nGantryIdx].Add(pMagnificInfo->m_strMagnificName); } @@ -1153,7 +1157,7 @@ Item.mask = GVIF_TEXT; Item.row = nRowIdx; Item.col = nColIdx; - strTemp.Format(_T("Index"));//_T("인덱스")); + strTemp.Format(_T("Index"));//_T("占싸듸옙占쏙옙")); Item.strText = strTemp; m_ctrlGridAFMRecipeInfo.SetItem(&Item); m_ctrlGridAFMRecipeInfo.SetColumnWidth(nColIdx, 100); @@ -1161,14 +1165,14 @@ nRowIdx++; Item.row = nRowIdx; Item.col = nColIdx; - strTemp.Format(_T("Recipe Index"));//_T("레시피 인덱스")); + strTemp.Format(_T("Recipe Index"));//_T("占쏙옙占쏙옙占쏙옙 占싸듸옙占쏙옙")); Item.strText = strTemp; m_ctrlGridAFMRecipeInfo.SetItem(&Item); nRowIdx++; Item.row = nRowIdx; Item.col = nColIdx; - strTemp.Format(_T("Magnific Index"));//_T("배율 인덱스")); + strTemp.Format(_T("Magnific Index"));//_T("占쏙옙占쏙옙 占싸듸옙占쏙옙")); Item.strText = strTemp; m_ctrlGridAFMRecipeInfo.SetItem(&Item); @@ -1240,7 +1244,7 @@ pRcpRsReviewManager = pDlg->GetRsReviewManager(); if(pRcpRsReviewManager == NULL) return; - // [2016:11:2]-[WEZASW] : WSI(1)/Review(0) Type 분리 + // [2016:11:2]-[WEZASW] : WSI(1)/Review(0) Type 占싻몌옙 if(nType) { nAFMCount = pRcpRsReviewManager->GetRsRcpReviewInfo()->GetRcpWsiAFMRecipeInfoCount(); @@ -1356,7 +1360,7 @@ for (int nResultIdx=0; nResultIdx<m_nFilterCount; nResultIdx++) { - //인덱스 + //占싸듸옙占쏙옙 nColIdx = 0; Item.mask = GVIF_TEXT; Item.row = nRowIdx; @@ -1368,7 +1372,7 @@ // optic nColIdx++; strArrayOption.RemoveAll(); - for(j = 0; j < RCP_PRIORITY_ORDER_COUNT; j++) + /*for(j = 0; j < RCP_PRIORITY_ORDER_COUNT; j++) { switch(j) { @@ -1398,6 +1402,37 @@ break; case RCP_PRIORITY_ORDER_SCR: strTemp.Format(_T("SCRATCH")); + break; + } + strArrayOption.Add(strTemp); + }*/ + for (j = 0; j < RCP_PRIORITY_DEFECTCODE_COUNT; j++)//20210608 + { + switch (j) + { + case RCP_PRIORITY_DEFECT_CODE_ALL: + strTemp.Format(_T("ALL")); + break; + case RCP_PRIORITY_DEFECT_CODE_TRDF: + strTemp.Format(_T("TRDF")); + break; + case RCP_PRIORITY_DEFECT_CODE_BATR: + strTemp.Format(_T("BATR")); + break; + case RCP_PRIORITY_DEFECT_CODE_DOBB: + strTemp.Format(_T("DOBB")); + break; + case RCP_PRIORITY_DEFECT_CODE_DOBS: + strTemp.Format(_T("DOBS")); + break; + case RCP_PRIORITY_DEFECT_CODE_DOWW: + strTemp.Format(_T("DOWW")); + break; + case RCP_PRIORITY_DEFECT_CODE_DOWB: + strTemp.Format(_T("DOWB")); + break; + case RCP_PRIORITY_DEFECT_CODE_DOWS: + strTemp.Format(_T("DOWS")); break; } strArrayOption.Add(strTemp); @@ -1587,11 +1622,11 @@ void CDlgReview::SizeOptionSetting(int nIndex) { - //리뷰 dlg 가져오기 + //占쏙옙占쏙옙 dlg 占쏙옙占쏙옙占쏙옙占쏙옙 CReviewRecipeEditorDlg* pDlg = (CReviewRecipeEditorDlg*)AfxGetMainWnd(); if(pDlg == NULL) return; - //리뷰 매니져 + //占쏙옙占쏙옙 占신댐옙占쏙옙 CRcp_RsReviewManager* pRcpRsReviewManager = pDlg->GetRsReviewManager(); if(pRcpRsReviewManager == NULL) return; diff --git a/ReviewSystem/ReviewSystem/DlgDefectList.cpp b/ReviewSystem/ReviewSystem/DlgDefectList.cpp index bd25f93..d89c98d 100644 --- a/ReviewSystem/ReviewSystem/DlgDefectList.cpp +++ b/ReviewSystem/ReviewSystem/DlgDefectList.cpp @@ -15,9 +15,9 @@ int Defect_width[DEFECTLISTCNT] = { 50, 80, 80, 50, 50, 40, 40, 45, 45, 50, 50, 80, 80 }; // [2017:6:7]-[WEZASW] : BOE�뼢 -#define B7_DEFECTLISTCNT 13 -TCHAR* B7_Defect_Titlelist[B7_DEFECTLISTCNT] = { _T("No"), _T("RV_X(mm)"), _T("RV_Y(mm)"), _T("DType"), _T("MType"), _T("SType"), _T("DLength"), _T("Area"), _T("Peak"), _T("Cam"), _T("DType1"), _T("AOI_X(mm)"), _T("AOI_Y(mm)")}; -int B7_Defect_width[B7_DEFECTLISTCNT] = { 40, 75, 75, 75, 75, 50, 60, 45, 45, 40, 60, 80, 80 }; +#define B7_DEFECTLISTCNT 14 +TCHAR* B7_Defect_Titlelist[B7_DEFECTLISTCNT] = { _T("No"), _T("RV_X(mm)"), _T("RV_Y(mm)"), _T("DType"), _T("MType"), _T("SType"),_T("DCode"), _T("DLength"), _T("Area"), _T("Peak"), _T("Cam"), _T("DType1"), _T("AOI_X(mm)"), _T("AOI_Y(mm)")}; +int B7_Defect_width[B7_DEFECTLISTCNT] = { 40, 75, 75, 75, 50, 50, 55, 60, 45, 45, 40, 60, 80, 80 }; @@ -148,7 +148,7 @@ m_bAsending = !m_bAsending; - if(nCol==3 || nCol==4 || nCol==5 || nCol==10) + if(nCol==3 || nCol==4 || nCol==5 || nCol==6)//210608 { vector< pair<CString,CDefectResult*> > vec; @@ -162,14 +162,17 @@ vec.push_back(make_pair(pDefectResult->strDefectType, pDefectResult)); break; case 4: - vec.push_back(make_pair(pDefectResult->strMarkType, pDefectResult)); + vec.push_back(make_pair(pDefectResult->strJudgeType, pDefectResult)); break; case 5: - vec.push_back(make_pair(pDefectResult->strSizeType, pDefectResult)); + vec.push_back(make_pair(pDefectResult->strSizeType, pDefectResult)); break; - case 10: - vec.push_back(make_pair(pDefectResult->strDefectType1, pDefectResult)); + case 6: + vec.push_back(make_pair(pDefectResult->strDefectJudgeCode, pDefectResult)); break; + /*case 11: + vec.push_back(make_pair(pDefectResult->strDefectType1, pDefectResult)); + break;*/ default: continue; } @@ -207,13 +210,13 @@ case 0: nValue = pDefectResult->nDefectIdx; break; // _T("No") case 1: nValue = pDefectResult->nUMOriginX; break; // _T("RV_X(mm)") case 2: nValue = pDefectResult->nUMOriginY; break; // _T("RV_Y(mm)") - case 6: nValue = pDefectResult->nAOISizeLength; break; // _T("DLength") - case 7: nValue = pDefectResult->nAOIArea; break; // _T("Area") - case 8: nValue = pDefectResult->nAOIPeak; break; // _T("Peak") - case 9: nValue = pDefectResult->nAOICameraIdx; break; // _T("Cam") - case 10: nValue = pDefectResult->nAOIScanIdx; break; // _T("Cam") - case 11: nValue = pDefectResult->dUMCenterOriginX; break; // _T("AOI_X(mm)") - case 12: nValue = pDefectResult->dUMCenterOriginY; break; // _T("AOI_Y(mm)") + case 7: nValue = pDefectResult->nAOISizeLength; break; // _T("DLength") + case 8: nValue = pDefectResult->nAOIArea; break; // _T("Area") + case 9: nValue = pDefectResult->nAOIPeak; break; // _T("Peak") + case 10: nValue = pDefectResult->nAOICameraIdx; break; // _T("Cam") + case 11: nValue = pDefectResult->nAOIScanIdx; break; // _T("Cam") + case 12: nValue = pDefectResult->dUMCenterOriginX; break; // _T("AOI_X(mm)") + case 13: nValue = pDefectResult->dUMCenterOriginY; break; // _T("AOI_Y(mm)") default: continue; } @@ -260,13 +263,14 @@ case 3: strItem = _T("DType"); break; case 4: strItem = _T("Judge"); break; case 5: strItem = _T("SType"); break; - case 6: strItem = _T("DLength"); break; - case 7: strItem = _T("Area"); break; - case 8: strItem = _T("Peak"); break; - case 9: strItem = _T("Cam"); break; - case 10: strItem = _T("ScanN"); break; - case 11: strItem = _T("AOI_X(mm)"); break; - case 12: strItem = _T("AOI_Y(mm)"); break; + case 6: strItem = _T("DCODE"); break; + case 7: strItem = _T("DLength"); break; + case 8: strItem = _T("Area"); break; + case 9: strItem = _T("Peak"); break; + case 10: strItem = _T("Cam"); break; + case 11: strItem = _T("ScanN"); break; + case 12: strItem = _T("AOI_X(mm)"); break; + case 13: strItem = _T("AOI_Y(mm)"); break; default: break; } } @@ -346,39 +350,44 @@ strItem.Format(_T("%s"), pDefectResult->strSizeType); } break; + case 6: //S_Type + { + strItem.Format(_T("%s"), pDefectResult->strDefectJudgeCode);//210608 + } + break; - case 6: //DLength + case 7: //DLength { strItem.Format(_T("%d"), (int)pDefectResult->nAOISizeLength); } break; - case 7: //Area + case 8: //Area { strItem.Format(_T("%d"), (int)pDefectResult->nAOIArea); } break; - case 8: //Peak + case 9: //Peak { strItem.Format(_T("%d"), pDefectResult->nAOIPeak); } break; - case 9: //Cam + case 10: //Cam { strItem.Format(_T("%d"), pDefectResult->nAOICameraIdx); } break; - case 10: //D_Type1 + case 11: //D_Type1 { // strItem.Format(_T("%s"), pDefectResult->strDefectType1); strItem.Format(_T("%d"), pDefectResult->nAOIScanIdx); } break; - case 11: //AOI_X(mm) + case 12: //AOI_X(mm) { strItem.Format(_T("%.03lf"), pDefectResult->dUMCenterOriginX / 1000.); } break; - case 12: //AOI_Y(mm) + case 13: //AOI_Y(mm) { strItem.Format(_T("%.03lf"), pDefectResult->dUMCenterOriginY / 1000.); } diff --git a/ReviewSystem/ReviewSystem/DlgDeffectHistroy.cpp b/ReviewSystem/ReviewSystem/DlgDeffectHistroy.cpp index e11f372..1f165d9 100644 --- a/ReviewSystem/ReviewSystem/DlgDeffectHistroy.cpp +++ b/ReviewSystem/ReviewSystem/DlgDeffectHistroy.cpp @@ -13,12 +13,12 @@ using namespace CHReviewResult; // SDC �뼢 -#define DEFECTLISTCNT 13 +#define DEFECTLISTCNT 14 TCHAR* Defect_HistoryTitlelist[DEFECTLISTCNT] = { _T("No"), _T("Mask_X(mm)"), _T("Mask_Y(mm)"), _T("Size"), _T("Peak"), _T("Cam"), _T("Scan"), _T("Type"), _T("Stack"), _T("Zone"), _T("Type"), _T("AOI_X(mm)"), _T("AOI_Y(mm)") }; int Defect_Historywidth[DEFECTLISTCNT] = { 50, 80, 80, 50, 50, 40, 40, 45, 45, 50, 50, 80, 80 }; // [2017:6:7]-[WEZASW] : BOE�뼢 -#define B7_DEFECTLISTCNT 13 +#define B7_DEFECTLISTCNT 14 TCHAR* B7_Defect_HistoryTitlelist[B7_DEFECTLISTCNT] = { _T("No"), _T("RV_X(mm)"), _T("RV_Y(mm)"), _T("DType"), _T("MType"), _T("SType"), _T("DLength"), _T("Area"), _T("Peak"), _T("Cam"), _T("DType1"), _T("AOI_X(mm)"), _T("AOI_Y(mm)") }; int B7_Defect_Historywidth[B7_DEFECTLISTCNT] = { 40, 75, 75, 75, 75, 50, 60, 45, 45, 40, 60, 80, 80 }; diff --git a/ReviewSystem/include/CHReviewRecipe/RcpPriorityInfo.h b/ReviewSystem/include/CHReviewRecipe/RcpPriorityInfo.h index f5460fe..d5e8440 100644 --- a/ReviewSystem/include/CHReviewRecipe/RcpPriorityInfo.h +++ b/ReviewSystem/include/CHReviewRecipe/RcpPriorityInfo.h @@ -24,6 +24,10 @@ RCP_PRIORITY_Judge_ALL = 0, RCP_PRIORITY_Judge_OK, RCP_PRIORITY_Judge_RP, RCP_PRIORITY_Judge_NG, RCP_PRIORITY_Judge_TR, RCP_PRIORITY_Judge_PR, RCP_PRIORITY_Judge_PT, RCP_PRIORITY_Judge_Review, RCP_PRIORITY_Judge_RC, RCP_PRIORITY_Judge_Size, RCP_PRIORITY_Judge_VI, RCP_PRIORITY_Judge_Rework, RCP_PRIORITY_Judge_Unknown, RCP_PRIORITY_GRADE_COUNT }; +enum RECIPE_PRIORITY_CPJT_DEFECTCODE_TYPE { + RCP_PRIORITY_DEFECT_CODE_ALL = 0, RCP_PRIORITY_DEFECT_CODE_TRDF, RCP_PRIORITY_DEFECT_CODE_BATR, RCP_PRIORITY_DEFECT_CODE_DOBB, RCP_PRIORITY_DEFECT_CODE_DOBS, RCP_PRIORITY_DEFECT_CODE_DOWW, RCP_PRIORITY_DEFECT_CODE_DOWB, RCP_PRIORITY_DEFECT_CODE_DOWS, RCP_PRIORITY_DEFECTCODE_COUNT +}; + class AFX_EXT_CLASS CRcpPriorityInfo { @@ -46,6 +50,7 @@ int GetPriorityDefectMaxSize() const { return m_nDefectumMaxSize; } BOOL GetPriorityDefectSizeOption() const { return m_bUseSizeOption; } int GetPriorityGradeData() const { return m_nDefectGradeData; } + int GetPriorityDefectCode() const { return m_nPriorityDefectCode; }//20210608 TRDF 占쏙옙占쏙옙占쏙옙 // setter void SetInfo(const CRcpPriorityInfo& rhs); @@ -59,15 +64,16 @@ void SetPriorityDefectMaxSize(int nSize) { m_nDefectumMaxSize = nSize; } void SetPriorityDefectSizeOption(bool bUse) { m_bUseSizeOption = bUse; } void SetPriorityGradeData(int nData) {m_nDefectGradeData = nData; } - + void SetPriorityDefectCode(int nData) {m_nPriorityDefectCode = nData;} //20210608 protected: - int m_nPriorityOpticData; // 우선순위 optic 데이터 - int m_nPriorityGrayData; // 우선순위 gray 데이터 - int m_nPriorityStackData; // 우선순위 stack 데이터 - int m_nPriorityModelData; // 우선순위 Midek 데이터 + int m_nPriorityOpticData; // 占쎌선占쏙옙占쏙옙 optic 占쏙옙占쏙옙占쏙옙 + int m_nPriorityGrayData; // 占쎌선占쏙옙占쏙옙 gray 占쏙옙占쏙옙占쏙옙 + int m_nPriorityStackData; // 占쎌선占쏙옙占쏙옙 stack 占쏙옙占쏙옙占쏙옙 + int m_nPriorityModelData; // 占쎌선占쏙옙占쏙옙 Midek 占쏙옙占쏙옙占쏙옙 int m_nPriorityDefectType; int m_nPriorityDefectTypeNum; int m_nDefectGradeData; + int m_nPriorityDefectCode; // 占쎌선占쏙옙占쏙옙 占싯삼옙 DefectCode 占쏙옙占쏙옙占쏙옙//20210608 BOOL m_bUseSizeOption; int m_nDefectumMinSize; diff --git a/ReviewSystem/include/CHReviewResult/DefectResult.h b/ReviewSystem/include/CHReviewResult/DefectResult.h index 83ec84b..b17a00f 100644 --- a/ReviewSystem/include/CHReviewResult/DefectResult.h +++ b/ReviewSystem/include/CHReviewResult/DefectResult.h @@ -3,7 +3,7 @@ namespace CHReviewResult { enum ResultFileType { RESULT_FILE_TD = 0, RESULT_FILE_CD, RESULT_FILE_SD, RESULT_FILE_TYPE_COUNT }; - enum DefectType { DEFECT_TYPE_NONE = 0, DEFECT_TYPE_D, DEFECT_TYPE_B, DEFECT_TYPE_BD, DEFECT_TYPE_PD, DEFECT_TYPE_PB, DEFECT_TYPE_PBD, DEFECT_TYPE_MNT, DEFECT_TYPE_EC, DEFECT_TYPE_MURA, DEFECT_TYPE_VLINE, DEFECT_TYPE_HLINE, DEFECT_TYPE_SPOT, DEFECT_TYPE_DENT, DEFECT_TYPE_PROTRUDE };// 20171003 smok. MURA 세부 결과 + enum DefectType { DEFECT_TYPE_NONE = 0, DEFECT_TYPE_D, DEFECT_TYPE_B, DEFECT_TYPE_BD, DEFECT_TYPE_PD, DEFECT_TYPE_PB, DEFECT_TYPE_PBD, DEFECT_TYPE_MNT, DEFECT_TYPE_EC, DEFECT_TYPE_MURA, DEFECT_TYPE_VLINE, DEFECT_TYPE_HLINE, DEFECT_TYPE_SPOT, DEFECT_TYPE_DENT, DEFECT_TYPE_PROTRUDE };// 20171003 smok. MURA 占쏙옙占쏙옙 占쏙옙占� // [2018/01/29 15:16:23 by jylee] related PANDA enum PANDADefectType { DEFECT_TYPE_NORMAL = 0, DEFECT_TYPE_COMMON, DEFECT_TYPE_MASK }; enum DefectGrayType { DEFECT_GRAY_NONE = 0, DEFECT_GRAY_BLACK, DEFECT_GRAY_WHITE }; @@ -24,9 +24,9 @@ enum DefectPositionType { DEFECT_POSITION_NONE = -1, DEFECT_POSITION_FRONT, DEFECT_POSITION_BACK }; enum DefectZoneType { DEFECT_ZONE_NONE = 0, DEFECT_ZONE_DA, DEFECT_ZONE_GA, DEFECT_ZONE_GH, DEFECT_ZONE_AA }; - enum SERVER_DefectType { DefectType_TBlack = 0, DefectType_TWhite, DefectType_RBlack, DefectType_RWhite, DefectType_Unknown }; //검사기 - enum SERVER_DefectLocation { DefectLoc_Pattern = 0, DefectLoc_Crack, DefectLoc_BM, DefectLoc_ASG, DefectLoc_PAD, DefectLoc_C2C, DefectLoc_Align }; //검사기 - enum SERVER_DefectSubType { DefectSubType_Normal = 0, DefectSubType_Edge, DefectSubType_MC, DefectSubType_Mask, DefectSubType_Common, DefectSubType_NoDefect, DefectSubType_Align }; //검사기 + enum SERVER_DefectType { DefectType_TBlack = 0, DefectType_TWhite, DefectType_RBlack, DefectType_RWhite, DefectType_Unknown }; //占싯삼옙占� + enum SERVER_DefectLocation { DefectLoc_Pattern = 0, DefectLoc_Crack, DefectLoc_BM, DefectLoc_ASG, DefectLoc_PAD, DefectLoc_C2C, DefectLoc_Align }; //占싯삼옙占� + enum SERVER_DefectSubType { DefectSubType_Normal = 0, DefectSubType_Edge, DefectSubType_MC, DefectSubType_Mask, DefectSubType_Common, DefectSubType_NoDefect, DefectSubType_Align }; //占싯삼옙占� enum SERVER_DefectPosition { DefectPos_Front = 0, DefectPos_Back }; @@ -158,15 +158,15 @@ void Reset(); public: - //02.14 CHM RTMS용도 + //02.14 CHM RTMS占쎈도 CString strLotID; CString strGlassID; CString strOperID; // - CString ProcessID; // operID 동일 + CString ProcessID; // operID 占쏙옙占쏙옙 int nPanelID; // test - int nDefectidx1; //검사 디펙 인덱스 - int nDefectidx2; //Raw 메신저 인덱스 + int nDefectidx1; //占싯삼옙 占쏙옙占쏙옙 占싸듸옙占쏙옙 + int nDefectidx2; //Raw 占쌨쏙옙占쏙옙 占싸듸옙占쏙옙 int nUpdateTime; @@ -179,37 +179,38 @@ BOOL bRework; BOOL bReworkSelected; - // [2017:5:12]-[WEZASW] : DFS Result File Format 변경 + // [2017:5:12]-[WEZASW] : DFS Result File Format 占쏙옙占쏙옙 // defect raw data - int nTotalDefectCount; // Mura Defect Filter용 Total Defect(Vector) Index + int nTotalDefectCount; // Mura Defect Filter占쏙옙 Total Defect(Vector) Index int nDefectIdx; // Defect No. CString strDefectCode; // Defect Code int nDefectCode; // Defect Code Number - CString strDefectCode2; + int nDefectJudgeCode; // TRDF 占쏙옙占쏙옙 占싯삼옙 Defect Code CPJT 占쏙옙 占쏙옙...占쏠갈몌옙占쏙옙 DefectJudge占쏙옙 占쌕몌옙 Defect Code 占쏙옙占쌕몌옙 tlqkf + CString strDefectJudgeCode; // TRDF 占쏙옙占쏙옙 占싯삼옙 Defect Code CPJT 占쏙옙 //20210608 CString strDefectName; // Defect Name CString strCPResult; CString strDefectType; // PARTICLE/CRACK/DENT / PROTRUSION/TFE_ABNORMAL int nDefectType; - int nUMOriginX; // LTPS글라스 센터 기준 좌표 X - int nUMOriginY; // LTPS글라스 센터 기준 좌표 Y + int nUMOriginX; // LTPS占쌜띰옙 占쏙옙占쏙옙 占쏙옙占쏙옙 占쏙옙표 X + int nUMOriginY; // LTPS占쌜띰옙 占쏙옙占쏙옙 占쏙옙占쏙옙 占쏙옙표 Y - double nUMTransX; // Stage 상의 글라스 Left Bottom 컷팅면 기준 상대좌표 X - double nUMTransY; // Stage 상의 글라스 Left Bottom 컷팅면 기준 상대좌표 Y + double nUMTransX; // Stage 占쏙옙占쏙옙 占쌜띰옙 Left Bottom 占쏙옙占시몌옙 占쏙옙占쏙옙 占쏙옙占쏙옙占실� X + double nUMTransY; // Stage 占쏙옙占쏙옙 占쌜띰옙 Left Bottom 占쏙옙占시몌옙 占쏙옙占쏙옙 占쏙옙占쏙옙占실� Y - int nUMCellX;//셀 중심 x좌표 - int nUMCellY;//셀 중심 Y좌표 + int nUMCellX;//占쏙옙 占쌩쏙옙 x占쏙옙표 + int nUMCellY;//占쏙옙 占쌩쏙옙 Y占쏙옙표 CString strMarkType; // POINT/LINE/RECT/CIRCLE/TRIANGLE/ARC int nMarkType; - double dUMCenterOriginX; // Glass Center 기준 좌표 X - double dUMCenterOriginY; // Glass Center 기준 좌표 X + double dUMCenterOriginX; // Glass Center 占쏙옙占쏙옙 占쏙옙표 X + double dUMCenterOriginY; // Glass Center 占쏙옙占쏙옙 占쏙옙표 X int nSrcMax;//Gray max - int nRefMax;//비교대상 Gray max + int nRefMax;//占쏟교댐옙占� Gray max CString strCellID; // Defected Panel ID CString strEquipID; @@ -217,32 +218,32 @@ CString strSizeType; // S/M/L/EX_L/UL_L int nSizeType; - double nAOISizeW; // Defect’s X axis size (um) - double nAOISizeH; // Defect’s Y axis size (um) - double nAOISizeLength; // Defect’s Diagonal Length (um) + double nAOISizeW; // Defect占쏙옙s X axis size (um) + double nAOISizeH; // Defect占쏙옙s Y axis size (um) + double nAOISizeLength; // Defect占쏙옙s Diagonal Length (um) double nAOIArea; // CString strAOIArea; int nAOIPeak; // - int nDefectWBType; // 백결함 흑결함 분류 (1,3,5가 백결함) + int nDefectWBType; // 占쏙옙占쏙옙占� 占쏙옙占쏙옙占� 占싻뤄옙 (1,3,5占쏙옙 占쏙옙占쏙옙占�) CString strDefectType1; int nDefectType1; - CString strDefectType2; // Back(B) / TOP(T)???? => Lami AOI 상/하 Camera에 대한 분류 목적 + CString strDefectType2; // Back(B) / TOP(T)???? => Lami AOI 占쏙옙/占쏙옙 Camera占쏙옙 占쏙옙占쏙옙 占싻뤄옙 占쏙옙占쏙옙 int nDefectType2; CString strUploadImgFileName; // Review Image File Name CString strUploadImgFileName2; // image name 2 - int nDefectGroup; // [2018/06/04 11:13:54 by jylee] related Group Defect 분류 + int nDefectGroup; // [2018/06/04 11:13:54 by jylee] related Group Defect 占싻뤄옙 int nMultiModel; int nReview_Processing; - // [2017:4:10]-[WEZASW] : 고객사 요청에 의한 bmp 파일 추가 저장. (임시사용) + // [2017:4:10]-[WEZASW] : 占쏙옙占쏙옙占� 占쏙옙청占쏙옙 占쏙옙占쏙옙 bmp 占쏙옙占쏙옙 占쌩곤옙 占쏙옙占쏙옙. (占쌈시삼옙占�) CString strOrignalImgFileName; // [2017/08/03 14:10:50 by jylee] related Sharp @@ -308,15 +309,15 @@ int nSortSection; // not used FIC - int nZonePercent; // (13) ZONE_Percent //사용안함. or MNT Data 0 - int nBF_Width; // (14) bf_width_um //디펙 width (세로) BF Size or MNT Data 1 - int nBF_Length; // (15) bf_length_um //디펙 Length (가로) BF Size or MNT Data 2 - int nBF_Min; // (16) bf_min //BF_DEFECT의 GRAY MIN or MNT Data 3 - int nBF_Avg; // (17) bf_avg //BF_DEFECT의 GRAY AVG or MNT Data 0 + int nZonePercent; // (13) ZONE_Percent //占쏙옙占쏙옙占쏙옙. or MNT Data 0 + int nBF_Width; // (14) bf_width_um //占쏙옙占쏙옙 width (占쏙옙占쏙옙) BF Size or MNT Data 1 + int nBF_Length; // (15) bf_length_um //占쏙옙占쏙옙 Length (占쏙옙占쏙옙) BF Size or MNT Data 2 + int nBF_Min; // (16) bf_min //BF_DEFECT占쏙옙 GRAY MIN or MNT Data 3 + int nBF_Avg; // (17) bf_avg //BF_DEFECT占쏙옙 GRAY AVG or MNT Data 0 int nBF_AvgDiff; // (18) bf_avg_diff - int nDF_Width; // (19) df_width_um //디펙 width (세로) DF Size - int nDF_Length; // (20) df_lengt_um //디펙 Length (가로) DF Size + int nDF_Width; // (19) df_width_um //占쏙옙占쏙옙 width (占쏙옙占쏙옙) DF Size + int nDF_Length; // (20) df_lengt_um //占쏙옙占쏙옙 Length (占쏙옙占쏙옙) DF Size int nBefore_SizeWidth; int nBefore_SizeHeight; diff --git a/ReviewSystem/include/CHReviewResultParser/ParsingGlassResult_CPJT.h b/ReviewSystem/include/CHReviewResultParser/ParsingGlassResult_CPJT.h index 026ba9f..d803357 100644 --- a/ReviewSystem/include/CHReviewResultParser/ParsingGlassResult_CPJT.h +++ b/ReviewSystem/include/CHReviewResultParser/ParsingGlassResult_CPJT.h @@ -7,7 +7,7 @@ enum GlassOriginDir { GlassOrigin_LeftTop=0, GlassOrigin_RightTop, GlassOrigin_LeftBottom, GlassOrigin_RightBottom, GlassOrigin_Count }; enum CSOTDfectCode {CSOT_PARTICLE=1,COST_CRACK,CSOT_MURA,CSOT_PROTRUDE,CSOT_DENT,CSOT_TFE_ABNORMAL,CSOT_BUBBLE,CSOT_SCRATCH}; enum Judgement { Judge_OK = 0, Judge_RP, Judge_NG, Judge_TR, Judge_PR, Judge_PT, Judge_Review, Judge_RC, Judge_Size, Judge_VI, Judge_Rework, Judge_Unknown }; -enum JudgeCode { TRDF = 0, BATR, DOBB, DOBS, DOWW, DOWB, DOWS }; +enum JudgeCode { CODE_DEFAULT= 0,TRDF , BATR, DOBB, DOBS, DOWW, DOWB, DOWS }; #define LAYER_GT_50 _T("0114") #define LAYER_GT_58 _T("0214") @@ -37,171 +37,171 @@ // //enum eCSOTRawGlassIndex{ // 30 -// eCSOTRaw_Glass_Name = 0, // 계층번호 // AA - 30 고정 -// eCSOTRaw_Glass_PanelNum, // 검사 Panel 수량 // 9999 - 매 +// eCSOTRaw_Glass_Name = 0, // 占쏙옙占쏙옙占쏙옙호 // AA - 30 占쏙옙占쏙옙 +// eCSOTRaw_Glass_PanelNum, // 占싯삼옙 Panel 占쏙옙占쏙옙 // 9999 - 占쏙옙 // eCSOTRaw_Glass_RecipeID, // Recipe ID // AAAA -// eCSOTRaw_Glass_ProcessTime, // Processing Time // 9999 - 초 : 반입시작 ~ 반출완료 시간 -// eCSOTRaw_Glass_GlassID, // 기판ID (VCR) // AAAAAAAAAAAA +// eCSOTRaw_Glass_ProcessTime, // Processing Time // 9999 - 占쏙옙 : 占쏙옙占쌉쏙옙占쏙옙 ~ 占쏙옙占쏙옙狗占� 占시곤옙 +// eCSOTRaw_Glass_GlassID, // 占쏙옙占쏙옙ID (VCR) // AAAAAAAAAAAA // -// eCSOTRaw_Glass_ReadResult, // VCR 읽기 결과 // A +// eCSOTRaw_Glass_ReadResult, // VCR 占싻깍옙 占쏙옙占� // A // eCSOTRaw_Glass_CPFlag, // CP Instruction Flag // A - 0 : QMS Don't CP Processing, 1 : QMS IN the CP Processing -// eCSOTRaw_Glass_ElectroNum, // 정전기 Monitor 측정 수량 // 9 - 회 -// eCSOTRaw_Glass_CCDNum, // CCD Monitor 수량 // 99 - 회 -// eCSOTRaw_Glass_ReviewNum, // Review 수량 // 999 - 회 +// eCSOTRaw_Glass_ElectroNum, // 占쏙옙占쏙옙占쏙옙 Monitor 占쏙옙占쏙옙 占쏙옙占쏙옙 // 9 - 회 +// eCSOTRaw_Glass_CCDNum, // CCD Monitor 占쏙옙占쏙옙 // 99 - 회 +// eCSOTRaw_Glass_ReviewNum, // Review 占쏙옙占쏙옙 // 999 - 회 // -// eCSOTRaw_Glass_Alignment, // Alignment 유무 // 9 - 실시 : 1, 미실시 : 0 -// // [2018/07/05 08:38:46 by jylee] related Format 변경 -// eCSOTRaw_Glass_Spare1, // 스페어 1 -// eCSOTRaw_Glass_Spare2 // 스페어 2 +// eCSOTRaw_Glass_Alignment, // Alignment 占쏙옙占쏙옙 // 9 - 占실쏙옙 : 1, 占싱실쏙옙 : 0 +// // [2018/07/05 08:38:46 by jylee] related Format 占쏙옙占쏙옙 +// eCSOTRaw_Glass_Spare1, // 占쏙옙占쏙옙占� 1 +// eCSOTRaw_Glass_Spare2 // 占쏙옙占쏙옙占� 2 // // //}; /* enum eCSOTRawGlassIndex{ // 30 - eCSOTRaw_Glass_Name = 0, // 1. 계층번호 // AA - 30 고정 - eCSOTRaw_Glass_PanelNum, // 2. 검사 Panel 수량 // 9999 - 매 + eCSOTRaw_Glass_Name = 0, // 1. 占쏙옙占쏙옙占쏙옙호 // AA - 30 占쏙옙占쏙옙 + eCSOTRaw_Glass_PanelNum, // 2. 占싯삼옙 Panel 占쏙옙占쏙옙 // 9999 - 占쏙옙 eCSOTRaw_Glass_RecipeID, // 3. Recipe ID // AAAA - eCSOTRaw_Glass_ProcessTime, // 4. Processing Time // 9999 - 초 : 반입시작 ~ 반출완료 시간 - eCSOTRaw_Glass_GlassID, // 5. 기판ID (VCR) // AAAAAAAAAAAA + eCSOTRaw_Glass_ProcessTime, // 4. Processing Time // 9999 - 占쏙옙 : 占쏙옙占쌉쏙옙占쏙옙 ~ 占쏙옙占쏙옙狗占� 占시곤옙 + eCSOTRaw_Glass_GlassID, // 5. 占쏙옙占쏙옙ID (VCR) // AAAAAAAAAAAA - eCSOTRaw_Glass_ReadResult, // 6. VCR 읽기 결과 // A + eCSOTRaw_Glass_ReadResult, // 6. VCR 占싻깍옙 占쏙옙占� // A eCSOTRaw_Glass_CPFlag, // 7. CP Instruction Flag // A - 0 : QMS Don't CP Processing, 1 : QMS IN the CP Processing - eCSOTRaw_Glass_ElectroNum, // 8. 정전기 Monitor 측정 수량 // 9 - 회 - eCSOTRaw_Glass_CCDNum, // 9. CCD Monitor 수량 // 99 - 회 - eCSOTRaw_Glass_ReviewNum, // 10. Review 수량 // 999 - 회 + eCSOTRaw_Glass_ElectroNum, // 8. 占쏙옙占쏙옙占쏙옙 Monitor 占쏙옙占쏙옙 占쏙옙占쏙옙 // 9 - 회 + eCSOTRaw_Glass_CCDNum, // 9. CCD Monitor 占쏙옙占쏙옙 // 99 - 회 + eCSOTRaw_Glass_ReviewNum, // 10. Review 占쏙옙占쏙옙 // 999 - 회 - eCSOTRaw_Glass_Alignment, // 11. Alignment 유무 // 9 - 실시 : 1, 미실시 : 0 - eCSOTRaw_Glass_TotalDefect, // 12. 결함총수 // 99999 - eCSOTRaw_Glass_REVDefect, // 13. 리뷰 결함수 // 99999 - eCSOTRaw_Glass_FIXDefect, // 14. 고정 리뷰 결함수 // 99999 - eCSOTRaw_Glass_MaskDefect, // 15. MASK 결함수 // 99999 + eCSOTRaw_Glass_Alignment, // 11. Alignment 占쏙옙占쏙옙 // 9 - 占실쏙옙 : 1, 占싱실쏙옙 : 0 + eCSOTRaw_Glass_TotalDefect, // 12. 占쏙옙占쏙옙占싼쇽옙 // 99999 + eCSOTRaw_Glass_REVDefect, // 13. 占쏙옙占쏙옙 占쏙옙占쌉쇽옙 // 99999 + eCSOTRaw_Glass_FIXDefect, // 14. 占쏙옙占쏙옙 占쏙옙占쏙옙 占쏙옙占쌉쇽옙 // 99999 + eCSOTRaw_Glass_MaskDefect, // 15. MASK 占쏙옙占쌉쇽옙 // 99999 - eCSOTRaw_Glass_CommonDefect, // 16. 공통 결함수 // 99999 - eCSOTRaw_Glass_Spare1, // 17. 스페어 1 - eCSOTRaw_Glass_Spare2 // 18. 스페어 2 + eCSOTRaw_Glass_CommonDefect, // 16. 占쏙옙占쏙옙 占쏙옙占쌉쇽옙 // 99999 + eCSOTRaw_Glass_Spare1, // 17. 占쏙옙占쏙옙占� 1 + eCSOTRaw_Glass_Spare2 // 18. 占쏙옙占쏙옙占� 2 }; */ //enum eCSOTRawPanelIndex{ // 41 -// eCSOTRaw_Panel_Name = 0, // 1. 계층번호 // AA - 41 고정 -// eCSOTRaw_Panel_CellNum, // 2. Cell 번호 // AAAA -// eCSOTRaw_Panel_Judge, // 3. Panel 판정 결과 // A -// eCSOTRaw_Panel_Reason, // 4. 판정이유 // AAAAA -// eCSOTRaw_Panel_CPFlag, // 5. CP Flag // AAA - 0 : 요구 무, 1: 실시, 8: 미실시, 9:Data무 +// eCSOTRaw_Panel_Name = 0, // 1. 占쏙옙占쏙옙占쏙옙호 // AA - 41 占쏙옙占쏙옙 +// eCSOTRaw_Panel_CellNum, // 2. Cell 占쏙옙호 // AAAA +// eCSOTRaw_Panel_Judge, // 3. Panel 占쏙옙占쏙옙 占쏙옙占� // A +// eCSOTRaw_Panel_Reason, // 4. 占쏙옙占쏙옙占쏙옙占쏙옙 // AAAAA +// eCSOTRaw_Panel_CPFlag, // 5. CP Flag // AAA - 0 : 占썰구 占쏙옙, 1: 占실쏙옙, 8: 占싱실쏙옙, 9:Data占쏙옙 // -// eCSOTRaw_Panel_FrontCPDefectNum, // 6. CP 전 총결함수 // 9999 - 개 -// eCSOTRaw_Panel_RearCPDefectNum, // 7. CP 후 총결함수 // 9999 - 개 -// eCSOTRaw_Panel_Spare1, // 8. 스페어 1 -// eCSOTRaw_Panel_Spare2 // 9. 스페어 2 +// eCSOTRaw_Panel_FrontCPDefectNum, // 6. CP 占쏙옙 占싼곤옙占쌉쇽옙 // 9999 - 占쏙옙 +// eCSOTRaw_Panel_RearCPDefectNum, // 7. CP 占쏙옙 占싼곤옙占쌉쇽옙 // 9999 - 占쏙옙 +// eCSOTRaw_Panel_Spare1, // 8. 占쏙옙占쏙옙占� 1 +// eCSOTRaw_Panel_Spare2 // 9. 占쏙옙占쏙옙占� 2 //}; //enum eCSOTRawDefectIndex{ // 50 -// eCSOTRaw_Defect_Name = 0, // 계층번호 // 50 고정 -// eCSOTRaw_Defect_Code, // 결함코드 // AAAAA -// eCSOTRaw_Defect_CenterOriX, // 결함좌표X 1 // +-9999.999 mm 기판 센터 기점으로 좌표 -// eCSOTRaw_Defect_CenterOriY, // 결함좌표Y 1 // +-9999.999 mm -// eCSOTRaw_Defect_Area, // 결함 Size(면적) // 999.99 um - 추출 결함면적 +// eCSOTRaw_Defect_Name = 0, // 占쏙옙占쏙옙占쏙옙호 // 50 占쏙옙占쏙옙 +// eCSOTRaw_Defect_Code, // 占쏙옙占쏙옙占쌘듸옙 // AAAAA +// eCSOTRaw_Defect_CenterOriX, // 占쏙옙占쏙옙占쏙옙표X 1 // +-9999.999 mm 占쏙옙占쏙옙 占쏙옙占쏙옙 占쏙옙占쏙옙占쏙옙占쏙옙 占쏙옙표 +// eCSOTRaw_Defect_CenterOriY, // 占쏙옙占쏙옙占쏙옙표Y 1 // +-9999.999 mm +// eCSOTRaw_Defect_Area, // 占쏙옙占쏙옙 Size(占쏙옙占쏙옙) // 999.99 um - 占쏙옙占쏙옙 占쏙옙占쌉몌옙占쏙옙 // -// eCSOTRaw_Defect_SizeType, // 결함 Size 종류 // A - S/M/L/O -// eCSOTRaw_Defect_DefectType, // 결함 Type // A - N: Normal, C: Common, M: Mask -// eCSOTRaw_Defect_Zone, // 결함 위치 // A - Zone -// eCSOTRaw_Defect_Size, // 결함 Size (CCD수) // 99999 um2 - Camera Pixel Size -// eCSOTRaw_Defect_SizeX, // 결함Size DX // 999.99 um - 추출 결함 X축 길이 +// eCSOTRaw_Defect_SizeType, // 占쏙옙占쏙옙 Size 占쏙옙占쏙옙 // A - S/M/L/O +// eCSOTRaw_Defect_DefectType, // 占쏙옙占쏙옙 Type // A - N: Normal, C: Common, M: Mask +// eCSOTRaw_Defect_Zone, // 占쏙옙占쏙옙 占쏙옙치 // A - Zone +// eCSOTRaw_Defect_Size, // 占쏙옙占쏙옙 Size (CCD占쏙옙) // 99999 um2 - Camera Pixel Size +// eCSOTRaw_Defect_SizeX, // 占쏙옙占쏙옙Size DX // 999.99 um - 占쏙옙占쏙옙 占쏙옙占쏙옙 X占쏙옙 占쏙옙占쏙옙 // -// eCSOTRaw_Defect_SizeY, // 결함Size DY // 999.99 um - 추출 결함 Y축 길이 -// eCSOTRaw_Defect_X, // 결함좌표 X 2 // 9999.999 mm - QMS Calculation -// eCSOTRaw_Defect_Y, // 결함좌표 Y 2 // 9999.999 mm -// eCSOTRaw_Defect_PixelX, // 결함 Pixel 좌표 X // 99999 -// eCSOTRaw_Defect_PixelY, // 결함 Pixel 좌표 Y // 99999 +// eCSOTRaw_Defect_SizeY, // 占쏙옙占쏙옙Size DY // 999.99 um - 占쏙옙占쏙옙 占쏙옙占쏙옙 Y占쏙옙 占쏙옙占쏙옙 +// eCSOTRaw_Defect_X, // 占쏙옙占쏙옙占쏙옙표 X 2 // 9999.999 mm - QMS Calculation +// eCSOTRaw_Defect_Y, // 占쏙옙占쏙옙占쏙옙표 Y 2 // 9999.999 mm +// eCSOTRaw_Defect_PixelX, // 占쏙옙占쏙옙 Pixel 占쏙옙표 X // 99999 +// eCSOTRaw_Defect_PixelY, // 占쏙옙占쏙옙 Pixel 占쏙옙표 Y // 99999 // -// eCSOTRaw_Defect_CPResult, // CP 결과 // AAA - 0: CP 일치 무, 1: CP일치, 8: 미실시 -// eCSOTRaw_Defect_Flag, // 수정대상 Flag // AAAAA - 0 : 수정대상 외, 1: 수정후보 -// eCSOTRaw_Defect_ImageName, // 이미지 번호 // AAAAA.A999.AAA - Rule : " 설비ID " + " . " + " B " ( Before ) + " 連番 " + ?張子 " .AAA " -// eCSOTRaw_Defect_ImageSizeX, // 이미지 Size X // 9999.99 um -// eCSOTRaw_Defect_ImageSizeY, // 이미지 Size Y // 9999.99 um +// eCSOTRaw_Defect_CPResult, // CP 占쏙옙占� // AAA - 0: CP 占쏙옙치 占쏙옙, 1: CP占쏙옙치, 8: 占싱실쏙옙 +// eCSOTRaw_Defect_Flag, // 占쏙옙占쏙옙占쏙옙占� Flag // AAAAA - 0 : 占쏙옙占쏙옙占쏙옙占� 占쏙옙, 1: 占쏙옙占쏙옙占식븝옙 +// eCSOTRaw_Defect_ImageName, // 占싱뱄옙占쏙옙 占쏙옙호 // AAAAA.A999.AAA - Rule : " 占쏙옙占쏙옙ID " + " . " + " B " ( Before ) + " 連占쏙옙 " + ?占쏙옙占� " .AAA " +// eCSOTRaw_Defect_ImageSizeX, // 占싱뱄옙占쏙옙 Size X // 9999.99 um +// eCSOTRaw_Defect_ImageSizeY, // 占싱뱄옙占쏙옙 Size Y // 9999.99 um // -// // [2018/07/05 08:42:57 by jylee] related Format 변경 -// eCSOTRaw_Defect_Spare1 // 스페어 1 +// // [2018/07/05 08:42:57 by jylee] related Format 占쏙옙占쏙옙 +// eCSOTRaw_Defect_Spare1 // 占쏙옙占쏙옙占� 1 //}; /* enum eCSOTRawDefectIndex{ // 50 - eCSOTRaw_Defect_Name = 0, // 1. 계층번호 // 50 고정 - eCSOTRaw_Defect_Code, // 2. 결함코드 // AAAAA - eCSOTRaw_Defect_CenterOriX, // 3. 결함좌표X 1 // +-9999.999 mm 기판 센터 기점으로 좌표 - eCSOTRaw_Defect_CenterOriY, // 4. 결함좌표Y 1 // +-9999.999 mm - eCSOTRaw_Defect_Area, // 5. 결함 Size(면적) // 999.99 um - 추출 결함면적 + eCSOTRaw_Defect_Name = 0, // 1. 占쏙옙占쏙옙占쏙옙호 // 50 占쏙옙占쏙옙 + eCSOTRaw_Defect_Code, // 2. 占쏙옙占쏙옙占쌘듸옙 // AAAAA + eCSOTRaw_Defect_CenterOriX, // 3. 占쏙옙占쏙옙占쏙옙표X 1 // +-9999.999 mm 占쏙옙占쏙옙 占쏙옙占쏙옙 占쏙옙占쏙옙占쏙옙占쏙옙 占쏙옙표 + eCSOTRaw_Defect_CenterOriY, // 4. 占쏙옙占쏙옙占쏙옙표Y 1 // +-9999.999 mm + eCSOTRaw_Defect_Area, // 5. 占쏙옙占쏙옙 Size(占쏙옙占쏙옙) // 999.99 um - 占쏙옙占쏙옙 占쏙옙占쌉몌옙占쏙옙 - eCSOTRaw_Defect_SizeType, // 6. 결함 Size 종류 // A - S/M/L/O - eCSOTRaw_Defect_DefectType, // 7. 결함 Type // A - N: Normal, C: Common, M: Mask - eCSOTRaw_Defect_Zone, // 8. 결함 위치 // A - Zone - eCSOTRaw_Defect_Size, // 9. 결함 Size (CCD수) // 99999 um2 - Camera Pixel Size - eCSOTRaw_Defect_SizeX, // 10. 결함Size DX // 999.99 um - 추출 결함 X축 길이 + eCSOTRaw_Defect_SizeType, // 6. 占쏙옙占쏙옙 Size 占쏙옙占쏙옙 // A - S/M/L/O + eCSOTRaw_Defect_DefectType, // 7. 占쏙옙占쏙옙 Type // A - N: Normal, C: Common, M: Mask + eCSOTRaw_Defect_Zone, // 8. 占쏙옙占쏙옙 占쏙옙치 // A - Zone + eCSOTRaw_Defect_Size, // 9. 占쏙옙占쏙옙 Size (CCD占쏙옙) // 99999 um2 - Camera Pixel Size + eCSOTRaw_Defect_SizeX, // 10. 占쏙옙占쏙옙Size DX // 999.99 um - 占쏙옙占쏙옙 占쏙옙占쏙옙 X占쏙옙 占쏙옙占쏙옙 - eCSOTRaw_Defect_SizeY, // 11. 결함Size DY // 999.99 um - 추출 결함 Y축 길이 - eCSOTRaw_Defect_X, // 12. 결함좌표 X 2 // 9999.999 mm - QMS Calculation - eCSOTRaw_Defect_Y, // 13. 결함좌표 Y 2 // 9999.999 mm - eCSOTRaw_Defect_PixelX, // 14. 결함 Pixel 좌표 X // 99999 - eCSOTRaw_Defect_PixelY, // 15. 결함 Pixel 좌표 Y // 99999 + eCSOTRaw_Defect_SizeY, // 11. 占쏙옙占쏙옙Size DY // 999.99 um - 占쏙옙占쏙옙 占쏙옙占쏙옙 Y占쏙옙 占쏙옙占쏙옙 + eCSOTRaw_Defect_X, // 12. 占쏙옙占쏙옙占쏙옙표 X 2 // 9999.999 mm - QMS Calculation + eCSOTRaw_Defect_Y, // 13. 占쏙옙占쏙옙占쏙옙표 Y 2 // 9999.999 mm + eCSOTRaw_Defect_PixelX, // 14. 占쏙옙占쏙옙 Pixel 占쏙옙표 X // 99999 + eCSOTRaw_Defect_PixelY, // 15. 占쏙옙占쏙옙 Pixel 占쏙옙표 Y // 99999 - eCSOTRaw_Defect_CPResult, // 16. CP 결과 // AAA - 0: CP 일치 무, 1: CP일치, 8: 미실시 - eCSOTRaw_Defect_Flag, // 17. 수정대상 Flag // AAAAA - 0 : 수정대상 외, 1: 수정후보 - eCSOTRaw_Defect_ImageName, // 18. 이미지 번호 // AAAAA.A999.AAA - Rule : " 설비ID " + " . " + " B " ( Before ) + " 連番 " + ?張子 " .AAA " - eCSOTRaw_Defect_ImageSizeX, // 19. 이미지 Size X // 9999.99 um - eCSOTRaw_Defect_ImageSizeY, // 20. 이미지 Size Y // 9999.99 um + eCSOTRaw_Defect_CPResult, // 16. CP 占쏙옙占� // AAA - 0: CP 占쏙옙치 占쏙옙, 1: CP占쏙옙치, 8: 占싱실쏙옙 + eCSOTRaw_Defect_Flag, // 17. 占쏙옙占쏙옙占쏙옙占� Flag // AAAAA - 0 : 占쏙옙占쏙옙占쏙옙占� 占쏙옙, 1: 占쏙옙占쏙옙占식븝옙 + eCSOTRaw_Defect_ImageName, // 18. 占싱뱄옙占쏙옙 占쏙옙호 // AAAAA.A999.AAA - Rule : " 占쏙옙占쏙옙ID " + " . " + " B " ( Before ) + " 連占쏙옙 " + ?占쏙옙占� " .AAA " + eCSOTRaw_Defect_ImageSizeX, // 19. 占싱뱄옙占쏙옙 Size X // 9999.99 um + eCSOTRaw_Defect_ImageSizeY, // 20. 占싱뱄옙占쏙옙 Size Y // 9999.99 um - // [2018/07/05 08:42:57 by jylee] related Format 변경 - eCSOTRaw_Defect_CCDValue, // 21. CCD 수치 // 99999 - eCSOTRaw_Defect_CCDNum, // 22. 결함검출 카메라 번호 // 99 - eCSOTRaw_Defect_SliceNum, // 23. 결함 몇번째 스캔 검출// 99 - eCSOTRaw_Defect_REVNum, // 24. 결함 리뷰한 카메라 // 99 - eCSOTRaw_Defect_DefectPosGray, // 25. 결함위치 휘도차 // 999 + // [2018/07/05 08:42:57 by jylee] related Format 占쏙옙占쏙옙 + eCSOTRaw_Defect_CCDValue, // 21. CCD 占쏙옙치 // 99999 + eCSOTRaw_Defect_CCDNum, // 22. 占쏙옙占쌉곤옙占쏙옙 카占쌨띰옙 占쏙옙호 // 99 + eCSOTRaw_Defect_SliceNum, // 23. 占쏙옙占쏙옙 占쏙옙占승� 占쏙옙캔 占쏙옙占쏙옙// 99 + eCSOTRaw_Defect_REVNum, // 24. 占쏙옙占쏙옙 占쏙옙占쏙옙占쏙옙 카占쌨띰옙 // 99 + eCSOTRaw_Defect_DefectPosGray, // 25. 占쏙옙占쏙옙占쏙옙치 占쌍듸옙占쏙옙 // 999 - eCSOTRaw_Defect_NormalPosGray, // 26. 정상위치 휘도차 // 999 - eCSOTRaw_Defect_Spare1, // 27. 스페어 1 - eCSOTRaw_Defect_Spare2 // 28. 스페어 2 + eCSOTRaw_Defect_NormalPosGray, // 26. 占쏙옙占쏙옙占쏙옙치 占쌍듸옙占쏙옙 // 999 + eCSOTRaw_Defect_Spare1, // 27. 占쏙옙占쏙옙占� 1 + eCSOTRaw_Defect_Spare2 // 28. 占쏙옙占쏙옙占� 2 }; */ //enum eCSOTRawElectroIndex{ // 51 -// eCSOTRaw_Electro_Name = 0, // 계층번호 // 51 고정 -// eCSOTRaw_Electro_Value, // 측정치 // +-9999.99 -// eCSOTRaw_Electro_Spare1 // 스페어1 +// eCSOTRaw_Electro_Name = 0, // 占쏙옙占쏙옙占쏙옙호 // 51 占쏙옙占쏙옙 +// eCSOTRaw_Electro_Value, // 占쏙옙占쏙옙치 // +-9999.99 +// eCSOTRaw_Electro_Spare1 // 占쏙옙占쏙옙占�1 //}; //enum eCSOTRawCCDIndex{ // 52 -// eCSOTRaw_CCD_Name = 0, // 계층번호 // 52 고정 -// eCSOTRaw_CCD_CamNum, // CCD Camera 번호 // AA -// eCSOTRaw_CCD_AvgGrayScale, // 평균 Gray-Scale // 999 -// eCSOTRaw_CCD_Spare1 // 스페어1 +// eCSOTRaw_CCD_Name = 0, // 占쏙옙占쏙옙占쏙옙호 // 52 占쏙옙占쏙옙 +// eCSOTRaw_CCD_CamNum, // CCD Camera 占쏙옙호 // AA +// eCSOTRaw_CCD_AvgGrayScale, // 占쏙옙占� Gray-Scale // 999 +// eCSOTRaw_CCD_Spare1 // 占쏙옙占쏙옙占�1 //}; enum eCSOTRawReviewIndex{ // 53 - eCSOTRaw_Review_Name = 0, // 계층번호 // 53 고정 - eCSOTRaw_Review_PosX, // 결함위치 X // +-9999.999 mm - 기판 중심 - eCSOTRaw_Review_PosY, // 결함위치 Y // +-9999.999 mm - eCSOTRaw_Review_ImageName, // 이미지명 // AAAAA.A999.AAA - eCSOTRaw_Review_SizeX, // 이미지 Size X // 9999.99 um - eCSOTRaw_Review_SizeY, // 이미지 Size Y // 9999.99 um - eCSOTRaw_Review_Spare1 // 스페어1 + eCSOTRaw_Review_Name = 0, // 占쏙옙占쏙옙占쏙옙호 // 53 占쏙옙占쏙옙 + eCSOTRaw_Review_PosX, // 占쏙옙占쏙옙占쏙옙치 X // +-9999.999 mm - 占쏙옙占쏙옙 占쌩쏙옙 + eCSOTRaw_Review_PosY, // 占쏙옙占쏙옙占쏙옙치 Y // +-9999.999 mm + eCSOTRaw_Review_ImageName, // 占싱뱄옙占쏙옙占쏙옙 // AAAAA.A999.AAA + eCSOTRaw_Review_SizeX, // 占싱뱄옙占쏙옙 Size X // 9999.99 um + eCSOTRaw_Review_SizeY, // 占싱뱄옙占쏙옙 Size Y // 9999.99 um + eCSOTRaw_Review_Spare1 // 占쏙옙占쏙옙占�1 }; //enum eCSOTRawAlignmentIndex{ // 55 -// eCSOTRaw_Alignment_Name = 0, // 계층번호 // 55 고정 -// eCSOTRaw_Alignment_Result, // Alignment 결과 // 99999 - G: OK, N: NG, S:미판정 -// eCSOTRaw_Alignment_Rotation, // Alignment Rotation // +-9.999999 - 기판 회전 각도 -// eCSOTRaw_Alignment_A1ShiftX, // A1 Shift수치 X // +-9.999999 -// eCSOTRaw_Alignment_A1ShiftY, // A1 Shift수치 Y // +-9.999999 +// eCSOTRaw_Alignment_Name = 0, // 占쏙옙占쏙옙占쏙옙호 // 55 占쏙옙占쏙옙 +// eCSOTRaw_Alignment_Result, // Alignment 占쏙옙占� // 99999 - G: OK, N: NG, S:占쏙옙占쏙옙占쏙옙 +// eCSOTRaw_Alignment_Rotation, // Alignment Rotation // +-9.999999 - 占쏙옙占쏙옙 회占쏙옙 占쏙옙占쏙옙 +// eCSOTRaw_Alignment_A1ShiftX, // A1 Shift占쏙옙치 X // +-9.999999 +// eCSOTRaw_Alignment_A1ShiftY, // A1 Shift占쏙옙치 Y // +-9.999999 // -// eCSOTRaw_Alignment_A2ShiftX, // A2 Shift수치 X // +-9.999999 -// eCSOTRaw_Alignment_A2ShiftY, // A2 Shift수치 Y // +-9.999999 -// eCSOTRaw_Alignment_A3ShiftX, // A3 Shift수치 X // +-9.999999 -// eCSOTRaw_Alignment_A3ShiftY, // A3 Shift수치 Y // +-9.999999 -// eCSOTRaw_Alignment_A4ShiftX, // A4 Shift수치 X // +-9.999999 +// eCSOTRaw_Alignment_A2ShiftX, // A2 Shift占쏙옙치 X // +-9.999999 +// eCSOTRaw_Alignment_A2ShiftY, // A2 Shift占쏙옙치 Y // +-9.999999 +// eCSOTRaw_Alignment_A3ShiftX, // A3 Shift占쏙옙치 X // +-9.999999 +// eCSOTRaw_Alignment_A3ShiftY, // A3 Shift占쏙옙치 Y // +-9.999999 +// eCSOTRaw_Alignment_A4ShiftX, // A4 Shift占쏙옙치 X // +-9.999999 // -// eCSOTRaw_Alignment_A4ShiftY, // A4 Shift수치 Y // +-9.999999 -// eCSOTRaw_Alignment_Spare1 // 스페어1 +// eCSOTRaw_Alignment_A4ShiftY, // A4 Shift占쏙옙치 Y // +-9.999999 +// eCSOTRaw_Alignment_Spare1 // 占쏙옙占쏙옙占�1 //}; enum eCSOTRTMSRawData{ @@ -220,7 +220,7 @@ - // 공유메모리 사용시 쓸함수 CMARK================================================================================= + // 占쏙옙占쏙옙占쌨몌옙 占쏙옙占쏙옙 占쏙옙占쌉쇽옙 CMARK================================================================================= // Memory -> GlassResult virtual void MemoryParsingFileToGlassResult(CGlassResult* pGlassResult, CDitGlassRawClient* pDitRawClient); virtual int MemoryParsingReviewResultDataToFile(CGlassResult* pGlassResult, CDitGlassRawClient* pRawMemoryMgr) ; @@ -273,5 +273,6 @@ int GetCSOTDefectCode(CString strDfectType); CString GetGradeType(int nJudgementType);//DefectJudgement int GetCodeType(CString strValue); + }; \ No newline at end of file -- Gitblit v1.9.3