SDC C-Project CF Review 프로그램
LYW
2022-06-30 c220de6f70051797e9d8b371830d06def9dc9cbd
DitGlassRawMessenger/DitGlassRawMessenger/GlassRawCPJT.cpp
@@ -35,7 +35,9 @@
   /* <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)
@@ -63,6 +65,20 @@
   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);
@@ -76,6 +92,8 @@
BOOL CGlassRawCPJT::SequenceGlassLoading( CgrmGlassRawData* pData )
{
   AKLOG("Sequence :  Glass Loading Signal Start ");/* <KMH 20220407 : #4053 ADD > */
    SetEnableFtpAck(FALSE);
    m_nRawMergeIdx = 0;
   if(m_StackResult.getStackUse())
@@ -90,14 +108,24 @@
      {
         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(" Function : Delete Stack File Fail [%s]", strStackFileLocalPath);
      }
      else
      {
         AKLOG("Delete Stack File Fail [%s]", strStackFileLocalPath);
      }
            /*< SWK 20220413 - #4053 MOD End >*/
      //201218 CJH - Stack Download 시도
      SendMessageFTPDownloadStack(pData->GetGlassData());
@@ -113,20 +141,38 @@
      {
         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();
@@ -216,9 +262,15 @@
         fclose(pf);
      }
   }
   else
   {
      SendMessageFTPUploadImage(pData->GetGlassData(), FTPCMD_MURA_IMAGE);/* <KMH 20220407 : #4053 ADD > */
   }
    /* <KYH 211129 : #3806 ADD End> */
   SendMessageFTPUploadImage(pData->GetGlassData(), FTPCMD_MURA_IMAGE);//0405nwh
   AKLOG(" Sequence : InspectionEnd Signal End"); /* <KMH 20220407 : #4053 ADD > */
   return TRUE;
}
@@ -347,6 +399,7 @@
BOOL CGlassRawCPJT::SequenceFtpUpload(char* pRawFilePathName)
{
   AKLOG(" Sequence : FTP Upload Signal Start ");
   // Manual Upload 기능 [21-02-05 KJG]
   CTime tmFileCreate;
   _grmGlassData GlassData;
@@ -419,7 +472,7 @@
   
   fclose(pf);
   AKLOG(" Sequence : FTP Upload Signal End ");
   return TRUE;
}
@@ -534,10 +587,32 @@
   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";
/* < KMH 20220613 : #3957 MOD Start > */
   /* <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
   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
   for (int i = 0; i < RAW_CODE_MAX; i++)
   {
      CString strDefectCode = pGlassData->m_strRawDefectCode[i];
      if (strDefectCode == "") { strDefectCode = "*"; }
      strValue += " " + strDefectCode;
   }
   /* <LJC 20220425 : #3957 MOD End> */
/* < KMH 20220613 : #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> */
/* < KMH 20220614 : #3957 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> */
   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"; //56ea
   for (int i = 0; i < RAW_CODE_MAX; i++)
   {
      CString strDefectCode = pGlassData->m_strRawDefectCode[i];
      if (strDefectCode == "") { strDefectCode = "*"; }
      strValue += " " + strDefectCode;
   }
   /* <LJC 20220425 : #3957 MOD End> */
/* < KMH 20220614 : #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;
@@ -926,7 +1001,19 @@
   {
      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]
}
@@ -967,7 +1054,10 @@
   SPRINTRAW(8, "SUBPANEL");
   // 03 12 SUBPANELID         // Subpanel ID
   //SPRINTRAW(12, "%d", pCellData->m_nCellID);
   SPRINTRAW(12, "%s%c%c", pData->GetGlassData()->m_strGlassID, '0' + pCellData->m_nCellID / 36, g_pCellCode[pCellData->m_nCellID % 36]);
   /* < KMH 20220609 : #4183 MOD Start > */
   //SPRINTRAW(12, "%s%c%c", pData->GetGlassData()->m_strGlassID, '0' + pCellData->m_nCellID / 36, g_pCellCode[pCellData->m_nCellID % 36]);
   SPRINTRAW(12, "%s%s", pData->GetGlassData()->m_strGlassID, pCellData->m_strCellName);
   /* < KMH 20220609 : #4183 MOD End > */
   
   // 글라스 원점 기준 Y좌표 반대 
   // 코너컷 기준으로 결과파일 좌표가 생성되는데 고객사에 명확한 확인 필요
@@ -1052,7 +1142,19 @@
   // 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]
}
@@ -1110,7 +1212,10 @@
   // 02   6    DEFECT         // DEFECT
   SPRINTRAW(6, "DEFECT");
   // 03   12   ID            // Subpanel ID
   SPRINTRAW(12, "%s%c%c", pData->GetGlassData()->m_strGlassID, '0' + pDefectData->m_nCellIdx / 36, g_pCellCode[pDefectData->m_nCellIdx % 36]);
   /* < KMH 20220609 : #4183 MOD Start > */
   //SPRINTRAW(12, "%s%c%c", pData->GetGlassData()->m_strGlassID, '0' + pDefectData->m_nCellIdx / 36, g_pCellCode[pDefectData->m_nCellIdx % 36]);
   SPRINTRAW(12, "%s%s", pData->GetGlassData()->m_strGlassID, pDefectData->m_strCellName);
   /* < KMH 20220609 : #4183 MOD End > */
   // 04   5    DEF_NO         // Defect Number of Panel
   // RAW 파일용 Defect Index 
   //SPRINTRAW(5, "%d", pDefectData->m_nDefectIdx);
@@ -1580,10 +1685,10 @@
   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 )
@@ -1622,9 +1727,19 @@
   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 )
@@ -1662,9 +1777,19 @@
   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 >*/
}
@@ -1704,9 +1829,19 @@
   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 >*/
}
  
@@ -1760,9 +1895,20 @@
   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;
}