From e5fa774d622d6852fe8e1f033045aed221649108 Mon Sep 17 00:00:00 2001 From: LYW <leeyeanwoo@diteam.co.kr> Date: 금, 15 10월 2021 13:24:54 +0900 Subject: [PATCH] Ongoing80 #3662 CF AOI Review 전설비 알람 발생 조치 --- ReviewSystem/CHReviewResultParser/ParsingGlassResult_CPJT.cpp | 78 +++++++++++++++++++++----------------- 1 files changed, 43 insertions(+), 35 deletions(-) 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, "***"); -- Gitblit v1.9.3