From 9cbd9e554f9956b3b945b51602f1d4a3fa0353e1 Mon Sep 17 00:00:00 2001 From: LYW <leeyeanwoo@diteam.co.kr> Date: 목, 08 7월 2021 17:24:24 +0900 Subject: [PATCH] Ongoing60 #3486 CF AOI Review Review History 프로그램 테스트 및 적용 --- DitGlassRawMessenger/DitGlassRawMessenger/GlassRawCPJT.cpp | 373 ++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 364 insertions(+), 9 deletions(-) diff --git a/DitGlassRawMessenger/DitGlassRawMessenger/GlassRawCPJT.cpp b/DitGlassRawMessenger/DitGlassRawMessenger/GlassRawCPJT.cpp index 675e17c..4b6b6bb 100644 --- a/DitGlassRawMessenger/DitGlassRawMessenger/GlassRawCPJT.cpp +++ b/DitGlassRawMessenger/DitGlassRawMessenger/GlassRawCPJT.cpp @@ -106,11 +106,14 @@ } strcpy(pData->GetGlassData()->m_strPath, LOCAL_AOIRAWBIN_PATH); + if(!WriteBinFile(pData)) return FALSE; + if (1) ReadMuraFile(pData); + if (WriteAOIFile(pData) == FALSE) return FALSE; @@ -204,6 +207,8 @@ strcpy(pData->GetGlassData()->m_strPath, LOCAL_AOIRAWBIN_PATH); + pData->GetGlassData()->m_tmReviewLoading = m_tmReviewStart; + return TRUE; } @@ -213,6 +218,7 @@ m_bReviewEndCheck = TRUE; m_tmReviewEnd = m_tmReviewStart = CTime::GetCurrentTime(); m_tmFileCreateTime = CTime::GetCurrentTime(); + pData->GetGlassData()->m_tmReviewEnd = m_tmReviewEnd; //�뿬湲곗뿉�꽌 �씪�씤蹂꾨줈 �뙆�씪紐�, �샊�� Path �쐞移� 寃곗젙�븯硫대맖. AOIServer �샊�� ReviewServer�뿉�꽌 �븞�빐�룄�맖 [源��깭�쁽2019/9/4] pData->GetGlassData()->m_strFileName; @@ -338,6 +344,7 @@ BOOL CGlassRawCPJT::MakeAOIFile( CgrmGlassRawData* pData ) { + AKLOG("MakeAOIFile Start"); m_nWriteRawDefectIdx = 1; _grmGlassData* pGlass = pData->GetGlassData(); @@ -430,11 +437,11 @@ strValue = "ITEM PANEL MODULETYPE MODULEID PROCESSID PRODUCTID STEPID PROD_TYPE BATCHID H_PANELID E_PANELID P_PANELID OPERID COMP_COUNT PPID GRADE CODE R_GRADE MAP_IMAGE L_TIME U_TIME S_TIME E_TIME T_DEFECT TR PR TB TW RB RW T_STACK MAX_AVG_GRAY MAX_PORTION OK_CELL RJ_CELL RW_CELL NR_CELL CSTID SLOT_NO JOB_END TD_DEFECT SD_DEFECT PD_DEFECT SP_DEFECT PAD_GATE PAD_DATA M_DEFECT C_DEFECT BR_DEFECT IMG_COUNT RECIPE SHRINK RAW_CUT"; //53ea strLine += strValue; strLine += "\n"; - strValue = "ITEM SUBPANEL SUBPANELID COORD_X COORD_Y SIZE_X SIZE_Y GATELINE DATALINE GRADE CODE R_GRADE T_DEFECT TD_DEFECT SD_DEFECT PD_DEFECT SP_DEFECT PAD_GATE PAD_DATA M_DEFECT C_DEFECT PRO_IMAGE AVG_GRAY PORTION"; //24ea result 0404nwh �궘�젣 : S_DEFECT CRACK P_SHIFT + strValue = "ITEM SUBPANEL SUBPANELID COORD_X COORD_Y SIZE_X SIZE_Y GATELINE DATALINE GRADE CODE R_GRADE T_DEFECT TD_DEFECT SD_DEFECT PD_DEFECT SP_DEFECT PAD_GATE PAD_DATA M_DEFECT C_DEFECT PRO_IMAGE AVG_GRAY_0 PORTION_0 CORNER_GRAY_0 AVG_AMP_0 FFT_VAR_0 FFT_VAH_0 FFT_VAQ_0 FFT_PK_0 AVG_GRAY_1 PORTION_1 CORNER_GRAY_1 AVG_AMP_1 FFT_VAR_1 FFT_VAH_1 FFT_VAQ_1 FFT_PK_1 AVG_GRAY_2 PORTION_2 CORNER_GRAY_2 AVG_AMP_2 FFT_VAR_2 FFT_VAH_2 FFT_VAQ_2 FFT_PK_2 AVG_GRAY_3 PORTION_3 CORNER_GRAY_3 AVG_AMP_3 FFT_VAR_3 FFT_VAH_3 FFT_VAQ_3 FFT_PK_3"; //54ea 21-06-21 Mura Data 異붽� strLine += strValue; strLine += "\n"; //210405 //ITEM DEFECT ID DEF_NO COORD_X COORD_Y GATELINE DATALINE SIZE_S SIZE_W SIZE_L SIZE_H GRADE CODE STACK_FLAG STACK_COUNT STACK_STEP IMAGE_FILE DSC_CODE VC_CODE DCR_CODE DEFECT_SIZE REPEAT_DEFECT WSI_HEIGHT CS_HEIGHT C_GRADE GRAY_MIN GRAY_MAX GRAY_AVG GRAY_DEF WSI_IMAGE USE_CCDIMAGE SCAN_NUM CAM_POSITION CCD_NO R_GRAY_MIN R_GRAY_MAX R_GRAY_AVG SCAN_AI REVIEW_AI INS_MODE INS_CHANNEL COMPACTNESS THICKNESS MAJOR MINOR WSI_TYPE DEFECT_TYPE SHRINK - strValue = "ITEM DEFECT ID DEF_NO COORD_X COORD_Y GATELINE DATALINE SIZE_S SIZE_W SIZE_L SIZE_H GRADE CODE STACK_FLAG STACK_COUNT STACK_STEP IMAGE_FILE DSC_CODE VC_CODE DCR_CODE DEFECT_SIZE REPEAT_DEFECT WSI_HEIGHT CS_HEIGHT C_GRADE GRAY_MIN GRAY_MAX GRAY_AVG GRAY_DEF WSI_IMAGE USE_CCDIMAGE SCAN_NUM CAM_POSITION CCD_NO R_GRAY_MIN R_GRAY_MAX R_GRAY_AVG R_HEIGHT G_HEIGHT B_HEIGHT INS_CHANNEL COMPACTNESS THICKNESS MAJOR MINOR WSI_TYPE DEFECT_TYPE SHRINK"; //49ea + strValue = "ITEM DEFECT ID DEF_NO COORD_X COORD_Y GATELINE DATALINE SIZE_S SIZE_W SIZE_L SIZE_H GRADE CODE STACK_FLAG STACK_COUNT STACK_STEP IMAGE_FILE DSC_CODE VC_CODE DCR_CODE DEFECT_SIZE REPEAT_DEFECT WSI_HEIGHT CS_HEIGHT C_GRADE GRAY_MIN GRAY_MAX GRAY_AVG GRAY_DEF WSI_IMAGE USE_CCDIMAGE SCAN_NUM CAM_POSITION CCD_NO R_GRAY_MIN R_GRAY_MAX R_GRAY_AVG R_HEIGHT G_HEIGHT B_HEIGHT INS_CHANNEL COMPACTNESS THICKNESS MAJOR MINOR WSI_TYPE DEFECT_TYPE SHRINK CLASS_CODE"; //50ea strLine += strValue; } @@ -698,9 +705,23 @@ // 31 6 T_STACK // Panel �젙蹂� 08 SD+SP �닔 �엯�젰 SPRINTRAW(12, "%d", pGlassData->m_nDefectNumStackSD + pGlassData->m_nDefectNumStackSP); //32 6 BMDF // Panel �젙蹂� 09 -> 蹂�寃� MAX_AVG_GRAY 04/12 nwh - SPRINTRAW(12, "%5.4f", pGlassData->m_fMaxAvgGray); + if (strlen(pGlassData->m_strMaxAvgGray) == 0) + { + SPRINTRAW(12, "*"); + } + else + { + SPRINTRAW(12, "%s", pGlassData->m_strMaxAvgGray); + } // 33 6 CJ // Panel �젙蹂� 10 -> 蹂�寃� MAX_PORTION 04/12 nwh - SPRINTRAW(12, "%5.6f", pGlassData->m_fMaxPortion); + if (strlen(pGlassData->m_strMaxPortion) == 0) + { + SPRINTRAW(12, "*"); + } + else + { + SPRINTRAW(12, "%s", pGlassData->m_strMaxPortion); + } // 34 6 OK_CELL // OK Cell Count SPRINTRAW(12, "*"); // 35 6 RJ_CELL // RJ Cell Count @@ -749,10 +770,17 @@ { SPRINTRAW(16, "*"); } - else + else if(strlen(pGlassData->m_strRecipeName) <= 16) { SPRINTRAW(16, "%s", pGlassData->m_strRecipeName); } + else if (strlen(pGlassData->m_strRecipeName) > 16) + { + CString temp = pGlassData->m_strRecipeName; // �젅�떆�뵾 17�옄由� �꽆�뼱媛�硫� DCOLL 諛쒖깮�쑝濡� �삁�쇅泥섎━ [ 21-06-02 KJG ] + temp = temp.Left(16); + SPRINTRAW(16, "%s", temp.GetBuffer(0)); + } + // 52 12 SHRINK // Server or Frame Shrink �룞�옉 �뿬遺� if (strlen(pGlassData->m_strShrinked) == 0) { @@ -884,11 +912,326 @@ SPRINTRAW(12,"*"); } - // 23 6 CRACK -> 23 6 AVG_GRAY 蹂�寃� - SPRINTRAW(12, "%5.4f", pCellData->m_fAvgGray); + // 23 12 AVG_GRAY_0 + if (strlen(pCellData->m_strAvgGray_0)) + { + SPRINTRAW(12, "%s", pCellData->m_strAvgGray_0); + } + else + { + SPRINTRAW(12, "*"); + } + + // 24 12 PORTION_0 + if (strlen(pCellData->m_strPortion_0)) + { + SPRINTRAW(12, "%s", pCellData->m_strPortion_0); + } + else + { + SPRINTRAW(12, "*"); + } - // 24 6 P_SHIFT ->24 6 PORTION - SPRINTRAW(12, "%5.6f", pCellData->m_fPortion); + //kyh 0622 + // 25 12 CORNER_GRAY_0 + if (strlen(pCellData->m_strCorner_Gray_0)) + { + SPRINTRAW(12, "%s", pCellData->m_strCorner_Gray_0); + } + else + { + SPRINTRAW(12, "*"); + } + + // 26 12 AVG_AMP_0 + if (strlen(pCellData->m_strAvgAmp_0)) + { + SPRINTRAW(12, "%s", pCellData->m_strAvgAmp_0); + } + else + { + SPRINTRAW(12, "*"); + } + + // 27 12 FFT_VAR_0 + if (strlen(pCellData->m_strFFTVar_0)) + { + SPRINTRAW(12, "%s", pCellData->m_strFFTVar_0); + } + else + { + SPRINTRAW(12, "*"); + } + + // 28 12 FFT_VAH_0 + if (strlen(pCellData->m_strFFTVah_0)) + { + SPRINTRAW(12, "%s", pCellData->m_strFFTVah_0); + } + else + { + SPRINTRAW(12, "*"); + } + + // 29 12 FFT_VAQ_0 + if (strlen(pCellData->m_strFFTVaq_0)) + { + SPRINTRAW(12, "%s", pCellData->m_strFFTVaq_0); + } + else + { + SPRINTRAW(12, "*"); + } + + // 30 12 FFT_PK_0 + if (strlen(pCellData->m_strFFTPK_0)) + { + SPRINTRAW(12, "%s", pCellData->m_strFFTPK_0); + } + else + { + SPRINTRAW(12, "*"); + } + + // 31 12 AVG_GRAY_1 + if (strlen(pCellData->m_strAvgGray_1)) + { + SPRINTRAW(12, "%s", pCellData->m_strAvgGray_1); + } + else + { + SPRINTRAW(12, "*"); + } + // 32 12 PORTION_1 + if (strlen(pCellData->m_strPortion_1)) + { + SPRINTRAW(12, "%s", pCellData->m_strPortion_1); + } + else + { + SPRINTRAW(12, "*"); + } + + //kyh 0622 + // 33 12 CORNER_GRAY_1 + if (strlen(pCellData->m_strCorner_Gray_1)) + { + SPRINTRAW(12, "%s", pCellData->m_strCorner_Gray_1); + } + else + { + SPRINTRAW(12, "*"); + } + + // 34 12 AVG_AMP_1 + if (strlen(pCellData->m_strAvgAmp_1)) + { + SPRINTRAW(12, "%s", pCellData->m_strAvgAmp_1); + } + else + { + SPRINTRAW(12, "*"); + } + + // 35 12 FFT_VAR_1 + if (strlen(pCellData->m_strFFTVar_1)) + { + SPRINTRAW(12, "%s", pCellData->m_strFFTVar_1); + } + else + { + SPRINTRAW(12, "*"); + } + + // 36 12 FFT_VAH_1 + if (strlen(pCellData->m_strFFTVah_1)) + { + SPRINTRAW(12, "%s", pCellData->m_strFFTVah_1); + } + else + { + SPRINTRAW(12, "*"); + } + + // 37 12 FFT_VAQ_1 + if (strlen(pCellData->m_strFFTVaq_1)) + { + SPRINTRAW(12, "%s", pCellData->m_strFFTVaq_1); + } + else + { + SPRINTRAW(12, "*"); + } + + // 38 12 FFT_PK_1 + if (strlen(pCellData->m_strFFTPK_1)) + { + SPRINTRAW(12, "%s", pCellData->m_strFFTPK_1); + } + else + { + SPRINTRAW(12, "*"); + } + + // 39 12 AVG_GRAY_2 + if (strlen(pCellData->m_strAvgGray_2)) + { + SPRINTRAW(12, "%s", pCellData->m_strAvgGray_2); + } + else + { + SPRINTRAW(12, "*"); + } + // 40 12 PORTION_2 + if (strlen(pCellData->m_strPortion_2)) + { + SPRINTRAW(12, "%s", pCellData->m_strPortion_2); + } + else + { + SPRINTRAW(12, "*"); + } + + //kyh 0622 + // 41 12 CORNER_GRAY_2 + if (strlen(pCellData->m_strCorner_Gray_2)) + { + SPRINTRAW(12, "%s", pCellData->m_strCorner_Gray_2); + } + else + { + SPRINTRAW(12, "*"); + } + + // 42 12 AVG_AMP_2 + if (strlen(pCellData->m_strAvgAmp_2)) + { + SPRINTRAW(12, "%s", pCellData->m_strAvgAmp_2); + } + else + { + SPRINTRAW(12, "*"); + } + + // 43 12 FFT_VAR_2 + if (strlen(pCellData->m_strFFTVar_2)) + { + SPRINTRAW(12, "%s", pCellData->m_strFFTVar_2); + } + else + { + SPRINTRAW(12, "*"); + } + + // 44 12 FFT_VAH_2 + if (strlen(pCellData->m_strFFTVah_2)) + { + SPRINTRAW(12, "%s", pCellData->m_strFFTVah_2); + } + else + { + SPRINTRAW(12, "*"); + } + + // 45 12 FFT_VAQ_2 + if (strlen(pCellData->m_strFFTVaq_2)) + { + SPRINTRAW(12, "%s", pCellData->m_strFFTVaq_2); + } + else + { + SPRINTRAW(12, "*"); + } + + // 46 12 FFT_PK_2 + if (strlen(pCellData->m_strFFTPK_2)) + { + SPRINTRAW(12, "%s", pCellData->m_strFFTPK_2); + } + else + { + SPRINTRAW(12, "*"); + } + + // 47 12 AVG_GRAY_3 + if (strlen(pCellData->m_strAvgGray_3)) + { + SPRINTRAW(12, "%s", pCellData->m_strAvgGray_3); + } + else + { + SPRINTRAW(12, "*"); + } + // 48 12 PORTION_3 + if (strlen(pCellData->m_strPortion_3)) + { + SPRINTRAW(12, "%s", pCellData->m_strPortion_3); + } + else + { + SPRINTRAW(12, "*"); + } + + //kyh 0622 + // 49 12 CORNER_GRAY_3 + if (strlen(pCellData->m_strCorner_Gray_3)) + { + SPRINTRAW(12, "%s", pCellData->m_strCorner_Gray_3); + } + else + { + SPRINTRAW(12, "*"); + } + + // 50 12 AVG_AMP_3 + if (strlen(pCellData->m_strAvgAmp_3)) + { + SPRINTRAW(12, "%s", pCellData->m_strAvgAmp_3); + } + else + { + SPRINTRAW(12, "*"); + } + + // 51 12 FFT_VAR_3 + if (strlen(pCellData->m_strFFTVar_3)) + { + SPRINTRAW(12, "%s", pCellData->m_strFFTVar_3); + } + else + { + SPRINTRAW(12, "*"); + } + + // 52 12 FFT_VAH_3 + if (strlen(pCellData->m_strFFTVah_3)) + { + SPRINTRAW(12, "%s", pCellData->m_strFFTVah_3); + } + else + { + SPRINTRAW(12, "*"); + } + + // 53 12 FFT_VAQ_3 + if (strlen(pCellData->m_strFFTVaq_3)) + { + SPRINTRAW(12, "%s", pCellData->m_strFFTVaq_3); + } + else + { + SPRINTRAW(12, "*"); + } + + // 54 12 FFT_PK_3 + if (strlen(pCellData->m_strFFTPK_3)) + { + SPRINTRAW(12, "%s", pCellData->m_strFFTPK_3); + } + else + { + SPRINTRAW(12, "*"); + } SPRINTRAWEND; //以묒슂!!! �젮 留덉�留됱뿉 瑗� �엳�뼱�빞�븿!!!(�궘�젣湲덉�) [源��깭�쁽2020/9/23] } @@ -1073,6 +1416,7 @@ nValue = nValue << 1; } SPRINTRAW(12, "%04X", nValue); + // 22 12 DEFECT_SIZE // Common 04 遺덈웾 �겕湲� (L,H,M,S) if (pDefectData->m_DefectSizeType == SizeType_Small) { @@ -1292,6 +1636,17 @@ // 49 12 Frame Shrink �젙蹂� 異붽� SPRINTRAW(12, "%d", pDefectData->m_bShrinked); + // 50 12 CLASS_NO // Zone Classification NO + // Zone Data + nValue = 0; + for (int i = 15; i >= 0; i--) + { + if (pDefectData->m_sZoneClassPixelCount[i] > 0) + nValue += 1; + if (i > 0) + nValue = nValue << 1; + } + SPRINTRAW(12, "%04X", nValue); SPRINTRAWEND; //以묒슂!!! �젮 留덉�留됱뿉 瑗� �엳�뼱�빞�븿!!!(�궘�젣湲덉�) [源��깭�쁽2020/9/23] -- Gitblit v1.9.3