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 전설비 알람 발생 조치 --- DitGlassRawMessenger/DitGlassRawMessenger/GlassRawCPJT.cpp | 351 +++++++++++++++++++++++++++++++++++++++++++++++++++------ 1 files changed, 311 insertions(+), 40 deletions(-) diff --git a/DitGlassRawMessenger/DitGlassRawMessenger/GlassRawCPJT.cpp b/DitGlassRawMessenger/DitGlassRawMessenger/GlassRawCPJT.cpp index f165cb9..5033f78 100644 --- a/DitGlassRawMessenger/DitGlassRawMessenger/GlassRawCPJT.cpp +++ b/DitGlassRawMessenger/DitGlassRawMessenger/GlassRawCPJT.cpp @@ -78,7 +78,11 @@ m_StackResult.StackFileReadStart(pData->GetGlassData()->m_strGlassID); } - + if (m_RawMergeResult.getRawMergeUse()) + { + SendMessageFTPDownloadDataFile(pData->GetGlassData()); + m_RawMergeResult.RawMergeFileReadStart(pData->GetGlassData()->m_strGlassID); + } return TRUE; } @@ -121,7 +125,13 @@ _TimeDelay(5000); // �씠誘몄� 蹂듭궗 �떆媛� ��湲� //210218 CJH - 寃��궗 醫낅즺�떆 寃곌낵�뙆�씪 諛� CCD Image �뾽濡쒕뱶 SendMessageFTPUploadRaw(pData->GetGlassData()); - SendMessageFTPUploadImage(pData->GetGlassData(), FTPCMD_AOI_IMAGE); + + BOOL bIsBDI = strcmp((pData->GetGlassData()->m_strLine), _T("BDI")) == 0 ? TRUE : FALSE; + if (bIsBDI) + { + SendMessageFTPUploadImage(pData->GetGlassData(), FTPCMD_AOI_IMAGE); + } + SendMessageFTPUploadImage(pData->GetGlassData(), FTPCMD_MURA_IMAGE);//0405nwh return TRUE; @@ -437,11 +447,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_0 PORTION_0 AVG_GRAY_1 PORTION_1 AVG_GRAY_2 PORTION_2 AVG_GRAY_3 PORTION_3"; //30ea 21-05-12 Mura Data 異붽� + 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; } @@ -931,8 +941,69 @@ { SPRINTRAW(12, "*"); } + + //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, "*"); + } - // 25 12 AVG_GRAY_1 + // 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); @@ -941,7 +1012,7 @@ { SPRINTRAW(12, "*"); } - // 26 12 PORTION_1 + // 32 12 PORTION_1 if (strlen(pCellData->m_strPortion_1)) { SPRINTRAW(12, "%s", pCellData->m_strPortion_1); @@ -950,7 +1021,69 @@ { SPRINTRAW(12, "*"); } - // 27 12 AVG_GRAY_2 + + //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); @@ -959,7 +1092,7 @@ { SPRINTRAW(12, "*"); } - // 28 12 PORTION_2 + // 40 12 PORTION_2 if (strlen(pCellData->m_strPortion_2)) { SPRINTRAW(12, "%s", pCellData->m_strPortion_2); @@ -968,7 +1101,69 @@ { SPRINTRAW(12, "*"); } - // 29 12 AVG_GRAY_3 + + //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); @@ -977,10 +1172,71 @@ { SPRINTRAW(12, "*"); } - // 30 12 PORTION_3 + // 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 { @@ -1170,6 +1426,7 @@ nValue = nValue << 1; } SPRINTRAW(12, "%04X", nValue); + // 22 12 DEFECT_SIZE // Common 04 遺덈웾 �겕湲� (L,H,M,S) if (pDefectData->m_DefectSizeType == SizeType_Small) { @@ -1389,6 +1646,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] @@ -1542,23 +1810,18 @@ void CGlassRawCPJT::SendMessageFTPDownloadDataFile( _grmGlassData* pGlassData ) { if(pGlassData == NULL) return; - HWND hWnd = ::FindWindow(NULL, "FTPDownloader"); + HWND hWnd = ::FindWindow(NULL, "FTPUploader"); if(hWnd == NULL) return; char strServerFolder[256] = {}; char strServerFile[256] = {}; char strLocalFolder[256] = {}; - char pLocalFile[256] = {}; + char pLocalFile[256] = {}; + char strRTMSFile[32] = {}; + char strServerRawFileSubPath[256] = {}; + char strServer_SubFileName[256] = {}; - //GetFormatDescription(FTPCMD_DATAFILE, strServerFolder, strServerFile, strLocalFolder, pLocalFile, pGlassData); - { - CString strGlassIDOrg = pGlassData->m_strGlassID; - CString strGlassID = strGlassIDOrg.Left(12); - sprintf(strServerFolder, "%s", pGlassData->m_strCassetteSequenceNo); - sprintf(strServerFile, "%s.dat", strGlassID.GetBuffer(0)); - sprintf(strLocalFolder, "D:\\DIT_ResultData\\DownloadData"); - sprintf(pLocalFile, "%s.dat", strGlassID.GetBuffer(0)); - } + GetFormatDescription(FTPCMD_RAWMERGE, strServerFolder, strServerFile, strLocalFolder, pLocalFile, strRTMSFile, strServerRawFileSubPath, strServer_SubFileName, pGlassData); CFTPCopyDataParam upParam; strcpy(upParam.m_strServer_FolderName, strServerFolder); @@ -1571,7 +1834,7 @@ upParam.m_nSendResultCode = FALSE;//m_ctrlResultAck.GetCheck(); upParam.m_nProcessType = CFTPCopyDataParam::FTPProcessType_DownFile; // [C-PRJ] Image Upload Define - KHT (2020/11/19) - upParam.m_nDataType = CFTPCopyDataParam::FTPDataType_Unknown; + upParam.m_nDataType = CFTPCopyDataParam::FTPDataType_Raw; COPYDATASTRUCT cds; cds.dwData = CFTPCopyDataParam::FTPCopyDataCmd_RawDownload; @@ -1713,7 +1976,7 @@ else sprintf(pServerPath, "\\%s\\%s\\%s\\", strProcessID, strStepID, strGlassIDLevel6th); - sprintf(pLocalPath, "%s%s", LOCAL_AOI_IMAGE_PATH, strGlassID.GetBuffer(0)); + sprintf(pLocalPath, "%s%s", NETWORK_AOI_IMAGE_PATH, strGlassID.GetBuffer(0)); strcpy(pServerFile, "*.*"); strcpy(pLocalFile, "*.*"); } @@ -1871,23 +2134,31 @@ sprintf(pLocalFile, "%s", strGlassID.GetBuffer(0)); } break; - - case FTPCMD_MURA_IMAGE: //0404nwh - { // - /*CTime time = m_tmFileCreateTime; - sprintf(pServerPath, "%s\\%04d%02d%02d\\%s\\%s\\%s\\Image", pGlassData->m_strEquipID, time.GetYear(), time.GetMonth(), time.GetDay(), - strGlassIDLevel5th.GetBuffer(0), - strGlassIDLevel8th.GetBuffer(0), - strGlassID.GetBuffer(0)); - - sprintf(pLocalPath, "%s%s", LOCAL_MURA_IMAGE_PATH, strGlassID.GetBuffer(0)); - strcpy(pServerFile, "*.*"); - strcpy(pLocalFile, "*.*");*/ - - if (strGlassID.GetLength() > 6) - sprintf(pServerPath, "\\%s\\%s\\%s\\%s\\", strProcessID, strStepID, strGlassIDLevel6th, strGlassID); - else - sprintf(pServerPath, "\\%s\\%s\\%s\\", strProcessID, strStepID, strGlassIDLevel6th); + case FTPCMD_RAWMERGE: + { + sprintf(pServerPath, "\\%s\\%s\\%s", strProcessID, strStepID,strGlassIDLevel6th.GetBuffer(0)); // �꽌踰� 寃쎈줈 �솗�씤�썑 �닔�젙 kjg + sprintf(pServerFile, "%s",strGlassID); + + sprintf(pLocalPath, "%s", m_RawMergeResult.getRawMergeLocalPath()); + sprintf(pLocalFile, "%s", strGlassID.GetBuffer(0)); + } + break; + case FTPCMD_MURA_IMAGE: //0404nwh + { // + /*CTime time = m_tmFileCreateTime; + sprintf(pServerPath, "%s\\%04d%02d%02d\\%s\\%s\\%s\\Image", pGlassData->m_strEquipID, time.GetYear(), time.GetMonth(), time.GetDay(), + strGlassIDLevel5th.GetBuffer(0), + strGlassIDLevel8th.GetBuffer(0), + strGlassID.GetBuffer(0)); + + sprintf(pLocalPath, "%s%s", LOCAL_MURA_IMAGE_PATH, strGlassID.GetBuffer(0)); + strcpy(pServerFile, "*.*"); + strcpy(pLocalFile, "*.*");*/ + + if (strGlassID.GetLength() > 6) + sprintf(pServerPath, "\\%s\\%s\\%s\\%s\\", strProcessID, strStepID, strGlassIDLevel6th, strGlassID); + else + sprintf(pServerPath, "\\%s\\%s\\%s\\", strProcessID, strStepID, strGlassIDLevel6th); sprintf(pLocalPath, "%s%s", LOCAL_MURA_IMAGE_PATH, strGlassID.GetBuffer(0)); strcpy(pServerFile, "*.*"); -- Gitblit v1.9.3