| | |
| | | |
| | | #define LOCAL_AOIRAWDFS_PATH "D:\\DIT_ResultData\\Raw" |
| | | #define LOCAL_AOIRAWBIN_PATH "D:\\DIT_ResultData\\RawBin" |
| | | //TEST |
| | | // #define NETWORK_AOIRAWDFS_PATH "D:\\DIT_ResultData\\Raw" |
| | | // #define NETWORK_AOIRAWBIN_PATH "D:\\DIT_ResultData\\RawBin" |
| | | |
| | | #define NETWORK_AOIRAWDFS_PATH "\\\\126.100.100.1\\d\\DIT_ResultData\\Raw" |
| | | #define NETWORK_AOIRAWBIN_PATH "\\\\126.100.100.1\\d\\DIT_ResultData\\RawBin" |
| | | |
| | |
| | | /* <LJC 20211122 : #3820 ADD Start> */ |
| | | #define NETWORK_AOIRAWMERGELOCAL_PATH "D:\\DIT_ResultData\\RawMerge" |
| | | /* <LJC 20211122 : #3820 ADD End> */ |
| | | |
| | | /* <KMH 20220407 : #4053 ADD Start> */ |
| | | #define LOCAL_LOGDATA_PATH "D:\\DIT_LogData" |
| | | /* <KMH 20220407 : #4053 ADD End> */ |
| | | char* g_pCellCode = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"; |
| | | |
| | | void _TimeDelay(int delay) |
| | |
| | | CreateDirectory(LOCAL_AOIRAWDFS_PATH, NULL); |
| | | CreateDirectory(LOCAL_AOIRAWBIN_PATH, NULL); |
| | | CreateDirectory("D:\\Raw_im", NULL); |
| | | |
| | | /* <KMH 20220407 : #4053 ADD Start> */ |
| | | CFileFind FileFinder; |
| | | SYSTEMTIME st; |
| | | GetLocalTime(&st); |
| | | char strLogFolderPath [256]; |
| | | sprintf(strLogFolderPath, "%s\\%02d%02d%02d", LOCAL_LOGDATA_PATH,st.wYear, st.wMonth, st.wDay); |
| | | |
| | | BOOL bFind = FileFinder.FindFile(strLogFolderPath); |
| | | if (!bFind) |
| | | { |
| | | CreateDirectory(strLogFolderPath, NULL); |
| | | } |
| | | /* <KMH 20220407 : #4053 ADD End> */ |
| | | m_MuraResultFile.readOptionFile("C:\\DIT_Review\\ReviewServerConfig\\MacroInfo.cfg"); |
| | | |
| | | m_GlassRawRTMS.SetMuraResult(&m_MuraResultFile); |
| | |
| | | |
| | | BOOL CGlassRawCPJT::SequenceGlassLoading( CgrmGlassRawData* pData ) |
| | | { |
| | | |
| | | AKLOG("Sequence : Glass Loading Signal Start ");/* <KMH 20220407 : #4053 ADD > */ |
| | | SetEnableFtpAck(FALSE); |
| | | m_nRawMergeIdx = 0; |
| | | if(m_StackResult.getStackUse()) |
| | |
| | | { |
| | | File.FindNextFile(); |
| | | strStackFileLocalPath = File.GetFilePath(); |
| | | DeleteFile(strStackFileLocalPath); |
| | | Sleep(10); |
| | | } |
| | | /* <KMH 20220407 : #4053 MOD Start> */ |
| | | if (DeleteFile(strStackFileLocalPath)) |
| | | /*< SWK 20220413 - #4053 MOD Start >*/ |
| | | // { |
| | | // AKLOG(" Fucntion : Delete Stack File Sucess[%s] ", strStackFileLocalPath); |
| | | // } |
| | | // /* <KMH 20220407 : #4053 MOD End> */ |
| | | // Sleep(10); |
| | | // } |
| | | // else |
| | | // { |
| | | // AKLOG(" Function : Delete Stack File Fail [%s]", strStackFileLocalPath);/* <KMH 20220407 : #4053 MOD > */ |
| | | // } |
| | | AKLOG(" Function : Delete Stack File Sucess[%s] ", strStackFileLocalPath); |
| | | else |
| | | { |
| | | AKLOG("Delete Stack File Fail [%s]", strStackFileLocalPath); |
| | | AKLOG(" Function : Delete Stack File Fail [%s]", strStackFileLocalPath); |
| | | } |
| | | |
| | | /*< SWK 20220413 - #4053 MOD End >*/ |
| | | |
| | | //201218 CJH - Stack Download 시도 |
| | | SendMessageFTPDownloadStack(pData->GetGlassData()); |
| | |
| | | { |
| | | File.FindNextFile(); |
| | | strRawFileLocalPath = File.GetFilePath(); |
| | | DeleteFile(strRawFileLocalPath); |
| | | Sleep(10); |
| | | /* <KMH 20220407 : #4053 MOD Start> */ |
| | | if (DeleteFile(strRawFileLocalPath)) |
| | | /*< SWK 20220413 - #4053 MOD Start >*/ |
| | | // { |
| | | // AKLOG(" Fucntion : Delete RawMerge File Sucess[%s] ", strRawFileLocalPath); |
| | | // } |
| | | // /* <KMH 20220407 : #4053 MOD End> */ |
| | | // Sleep(10); |
| | | // } |
| | | // else |
| | | // { |
| | | // AKLOG(" Function : Delete RawMerge File Fail [%s]", strRawFileLocalPath); /* <KMH 20220407 : #4053 ADD > */ |
| | | // } |
| | | AKLOG(" Function : Delete RawMerge File Sucess[%s] ", strRawFileLocalPath); |
| | | else |
| | | AKLOG(" Function : Delete RawMerge File Fail [%s]", strRawFileLocalPath); |
| | | } |
| | | /*< SWK 20220413 - #4053 MOD End >*/ |
| | | SetEnableFtpAck(TRUE); |
| | | DownLoadMergeFile(pData); |
| | | } |
| | | /* <LJC 20211122 : #3820 ADD End> */ |
| | | /*< KJG 20211024 - #3487 ADD End >*/ |
| | | |
| | | AKLOG("Sequence : Glass Loading Signal End "); |
| | | return TRUE; |
| | | } |
| | | |
| | | BOOL CGlassRawCPJT::SequenceInspectEnd( CgrmGlassRawData* pData ) |
| | | { |
| | | AKLOG(" Sequence : InspectionEnd Signal Start"); /* <KMH 20220407 : #4053 ADD > */ |
| | | |
| | | m_bReviewEndCheck = FALSE; |
| | | //210128 |
| | | m_tmReviewEnd = m_tmReviewStart = CTime::GetCurrentTime(); |
| | |
| | | fclose(pf); |
| | | } |
| | | } |
| | | /* <KYH 211129 : #3806 ADD End> */ |
| | | SendMessageFTPUploadImage(pData->GetGlassData(), FTPCMD_MURA_IMAGE);//0405nwh |
| | | else |
| | | { |
| | | SendMessageFTPUploadImage(pData->GetGlassData(), FTPCMD_MURA_IMAGE);/* <KMH 20220407 : #4053 ADD > */ |
| | | } |
| | | |
| | | /* <KYH 211129 : #3806 ADD End> */ |
| | | |
| | | |
| | | AKLOG(" Sequence : InspectionEnd Signal End"); /* <KMH 20220407 : #4053 ADD > */ |
| | | return TRUE; |
| | | } |
| | | |
| | |
| | | |
| | | BOOL CGlassRawCPJT::SequenceFtpUpload(char* pRawFilePathName) |
| | | { |
| | | AKLOG(" Sequence : FTP Upload Signal Start "); |
| | | // Manual Upload 기능 [21-02-05 KJG] |
| | | CTime tmFileCreate; |
| | | _grmGlassData GlassData; |
| | |
| | | |
| | | fclose(pf); |
| | | |
| | | |
| | | AKLOG(" Sequence : FTP Upload Signal End "); |
| | | return TRUE; |
| | | } |
| | | |
| | |
| | | CString strValue; |
| | | /*< KJG 20211229 - #3846 MOD Start >*/ |
| | | //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 NG TB TW RB RW T_STACK NO_DEFECT 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 LN_DEFECT IMG_COUNT RECIPE SHRINK RAW_CUT CRACK_DEFECT"; |
| | | 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 NG TB TW RB RW T_STACK NO_DEFECT MAX_NG 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 LN_DEFECT IMG_COUNT RECIPE SHRINK RAW_CUT CRACK_DEFECT"; //56ea |
| | | /* <LJC 20220425 : #3957 MOD Start> */ |
| | | 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 NG TB TW RB RW T_STACK NO_DEFECT MAX_NG 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 LN_DEFECT IMG_COUNT RECIPE SHRINK RAW_CUT CRACK_DEFECT CODE_COUNT1 CODE_COUNT2 CODE_COUNT3 CODE_COUNT4 CODE_COUNT5 CODE_COUNT6 CODE_COUNT7 CODE_COUNT8 CODE_COUNT9 CODE_COUNT10"; //56ea |
| | | /* <LJC 20220425 : #3957 MOD End> */ |
| | | /*< KJG 20211229 - #3846 MOD End >*/ |
| | | 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 LN_DEFECT TR PR NG RB RW TB TW T_STACK NO_DEFECT"; //31ea /* <KYH 211129 : #3796 MOD Start> */ |
| | | /* <LJC 20220425 : #3957 MOD Start> */ |
| | | 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 LN_DEFECT TR PR NG RB RW TB TW T_STACK NO_DEFECT CODE_COUNT1 CODE_COUNT2 CODE_COUNT3 CODE_COUNT4 CODE_COUNT5 CODE_COUNT6 CODE_COUNT7 CODE_COUNT8 CODE_COUNT9 CODE_COUNT10"; //31ea /* <KYH 211129 : #3796 MOD Start> */ |
| | | /* <LJC 20220425 : #3957 MOD End> */ |
| | | strLine += strValue; strLine += "\n"; |
| | | 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 LINE_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; |
| | |
| | | { |
| | | SPRINTRAW(12, "UNUSE"); |
| | | } |
| | | |
| | | /* <LJC 20220425 : #3957 ADD Start> */ |
| | | for (int i = 0; i < RAW_CODE_MAX; i++) |
| | | { |
| | | if (pGlassData->m_nDefectCode[i] >= 0) |
| | | { |
| | | SPRINTRAW(12, "%d", pGlassData->m_nDefectCode[i]); |
| | | } |
| | | else |
| | | { |
| | | SPRINTRAW(12, "*"); |
| | | } |
| | | } |
| | | /* <LJC 20220425 : #3957 ADD End> */ |
| | | SPRINTRAWEND; //중요!!! 젤 마지막에 꼭 있어야함!!!(삭제금지) [김태현2020/9/23] |
| | | } |
| | | |
| | |
| | | // 31 6 NO_DEFECT 추가 |
| | | SPRINTRAW(12, "%d", pCellData->m_nDefectNumJudgeND); //KYH ND 데이터 추가 |
| | | /* <KYH 211129 : #3796 MOD End> */ |
| | | |
| | | /* <LJC 20220425 : #3957 ADD Start> */ |
| | | for (int i = 0; i < RAW_CODE_MAX; i++) |
| | | { |
| | | if (pCellData->m_nDefectCode[i] >= 0) |
| | | { |
| | | SPRINTRAW(12, "%d", pCellData->m_nDefectCode[i]); |
| | | } |
| | | else |
| | | { |
| | | SPRINTRAW(12, "*"); |
| | | } |
| | | } |
| | | /* <LJC 20220425 : #3957 ADD End> */ |
| | | SPRINTRAWEND; //중요!!! 젤 마지막에 꼭 있어야함!!!(삭제금지) [김태현2020/9/23] |
| | | } |
| | | |
| | |
| | | cds.lpData = &upParam; |
| | | |
| | | DWORD dwReturn = 0; |
| | | if(SendMessageTimeout(hWnd, WM_COPYDATA, NULL, (LPARAM)&cds, SMTO_NORMAL, 30000, (PDWORD_PTR)(dwReturn)) == FALSE) |
| | | { |
| | | } |
| | | |
| | | if(SendMessageTimeout(hWnd, WM_COPYDATA, NULL, (LPARAM)&cds, SMTO_NORMAL, 5000, (PDWORD_PTR)(dwReturn)) == FALSE) |
| | | AKLOG(" FunCtion FTP : RAW File Upload Signal Fail[%d]", FTPCMD_RAW);/* <KMH 20220407 : #4053 ADD > */ |
| | | else |
| | | AKLOG(" FunCtion FTP : RAW File Upload Signal Sucess[%d]", FTPCMD_RAW);/* <KMH 20220407 : #4053 ADD > */ |
| | | } |
| | | |
| | | void CGlassRawCPJT::SendMessageFTPDownloadStack( _grmGlassData* pGlassData ) |
| | |
| | | cds.lpData = &upParam; |
| | | |
| | | DWORD dwReturn = 0; |
| | | if(SendMessageTimeout(hWnd, WM_COPYDATA, NULL, (LPARAM)&cds, SMTO_NORMAL, 20000, (PDWORD_PTR)(dwReturn)) == FALSE) |
| | | { |
| | | } |
| | | if (SendMessageTimeout(hWnd, WM_COPYDATA, NULL, (LPARAM)&cds, SMTO_NORMAL, 5000, (PDWORD_PTR)(dwReturn)) == FALSE) |
| | | /*< SWK 20220413 - #4053 MOD Start >*/ |
| | | // { |
| | | // AKLOG(" Fucntion FTP : Stack File Download Signal Fail[%d]", FTPCMD_STACK);/* <KMH 20220407 : #4053 ADD > */ |
| | | // } |
| | | // else |
| | | // { |
| | | // AKLOG(" Fucntion FTP : Stack File Download Signal Sucess[%d]", FTPCMD_STACK);/* <KMH 20220407 : #4053 ADD > */ |
| | | // } |
| | | AKLOG(" Function FTP : Stack File Download Signal Fail[%d]", FTPCMD_STACK); |
| | | else |
| | | AKLOG(" Function FTP : Stack File Download Signal Success[%d]", FTPCMD_STACK); |
| | | /*< SWK 20220413 - #4053 MOD End >*/ |
| | | } |
| | | |
| | | void CGlassRawCPJT::SendMessageFTPDownloadDataFile( _grmGlassData* pGlassData ) |
| | |
| | | cds.lpData = &upParam; |
| | | |
| | | DWORD dwReturn = 0; |
| | | if(SendMessageTimeout(hWnd, WM_COPYDATA, NULL, (LPARAM)&cds, SMTO_NORMAL, 20000, (PDWORD_PTR)(dwReturn)) == FALSE) |
| | | { |
| | | } |
| | | if (SendMessageTimeout(hWnd, WM_COPYDATA, NULL, (LPARAM)&cds, SMTO_NORMAL, 5000, (PDWORD_PTR)(dwReturn)) == FALSE) |
| | | /*< SWK 20220413 - #4053 MOD Start >*/ |
| | | // { |
| | | // AKLOG(" Fucntion FTP : RawMerge File Download Signal Sucess[%d]", FTPCMD_RAWMERGE);/* <KMH 20220407 : #4053 ADD > */ |
| | | // } |
| | | // else |
| | | // { |
| | | // AKLOG(" Fucntion FTP : RawMerge File Download Signal Fail[%d]", FTPCMD_RAWMERGE);/* <KMH 20220407 : #4053 ADD > */ |
| | | // } |
| | | AKLOG(" Function FTP : RawMerge File Download Signal Fail[%d]", FTPCMD_RAWMERGE); |
| | | else |
| | | AKLOG(" Function FTP : RawMerge File Download Signal Success[%d]", FTPCMD_RAWMERGE); |
| | | /*< SWK 20220413 - #4053 MOD End >*/ |
| | | /*< KJG 20211024 - #3487 ADD End >*/ |
| | | } |
| | | |
| | |
| | | cds.lpData = &upParam; |
| | | |
| | | DWORD dwReturn = 0; |
| | | if(SendMessageTimeout(hWnd, WM_COPYDATA, NULL, (LPARAM)&cds, SMTO_NORMAL, 20000, (PDWORD_PTR)(dwReturn)) == FALSE) |
| | | { |
| | | } |
| | | if (SendMessageTimeout(hWnd, WM_COPYDATA, NULL, (LPARAM)&cds, SMTO_NORMAL, 5000, (PDWORD_PTR)(dwReturn)) == FALSE) |
| | | /*< SWK 20220413 - #4053 MOD Start >*/ |
| | | // { |
| | | // AKLOG(" Fucntion FTP : Image Upload Signla Sucess[%d]", sort);/* <KMH 20220407 : #4053 ADD > */ |
| | | // } |
| | | // else |
| | | // { |
| | | // AKLOG(" Fucntion FTP : Image Upload Signla Fail[%d]", sort);/* <KMH 20220407 : #4053 ADD > */ |
| | | // } |
| | | AKLOG(" Function FTP : Image Upload Signal Fail[%d]", sort); |
| | | else |
| | | AKLOG(" Function FTP : Image Upload Signal Success[%d]", sort); |
| | | /*< SWK 20220413 - #4053 MOD End >*/ |
| | | } |
| | | |
| | | |
| | |
| | | cds.lpData = &upParam; |
| | | |
| | | DWORD dwReturn = 0; |
| | | if(SendMessageTimeout(hWnd, WM_COPYDATA, NULL, (LPARAM)&cds, SMTO_NORMAL, 20000, (PDWORD_PTR)(dwReturn)) == FALSE) |
| | | { |
| | | } |
| | | if (SendMessageTimeout(hWnd, WM_COPYDATA, NULL, (LPARAM)&cds, SMTO_NORMAL, 5000, (PDWORD_PTR)(dwReturn)) == FALSE) |
| | | /*< SWK 20220413 - #4053 MOD Start >*/ |
| | | // { |
| | | // AKLOG(" Fucntion FTP : Index File Upload Signla Sucess[%d]", FTPCMD_INDEX);/* <KMH 20220407 : #4053 ADD > */ |
| | | // } |
| | | // else |
| | | // { |
| | | // AKLOG(" Fucntion FTP : Index File Upload Signla Fail[%d]", FTPCMD_INDEX);/* <KMH 20220407 : #4053 ADD > */ |
| | | // } |
| | | AKLOG(" Function FTP : Index File Upload Signal Fail[%d]", FTPCMD_INDEX); |
| | | else |
| | | AKLOG(" Function FTP : Index File Upload Signal Success[%d]", FTPCMD_INDEX); |
| | | /*< SWK 20220413 - #4053 MOD End >*/ |
| | | |
| | | return TRUE; |
| | | } |
| | | |