From ea59e5356f149db6e6e2e3f063aa5ee10a44b68e Mon Sep 17 00:00:00 2001 From: KEJ <kimeungju@diteam.co.kr> Date: 금, 24 11월 2023 17:39:42 +0900 Subject: [PATCH] Ongoing80 #4669 CF AOI Review Glass Grade PT판정 처리 추가 1. Glass, Cell PT 판정 추가. 2. GlassRawMessenger 데이터 추가 3. GlassRawMessenger 동기화 --- DitGlassRawMessenger/DitGlassRawMessenger/GlassRawCPJT.cpp | 64 +++++++++++++++++++++++++++++--- 1 files changed, 58 insertions(+), 6 deletions(-) diff --git a/DitGlassRawMessenger/DitGlassRawMessenger/GlassRawCPJT.cpp b/DitGlassRawMessenger/DitGlassRawMessenger/GlassRawCPJT.cpp index 2055277..64660aa 100644 --- a/DitGlassRawMessenger/DitGlassRawMessenger/GlassRawCPJT.cpp +++ b/DitGlassRawMessenger/DitGlassRawMessenger/GlassRawCPJT.cpp @@ -58,6 +58,30 @@ Sleep(10); } } +/* < KJG 20221110 - #4373 ADD Start >*/ +auto CellIDSortFunc = [](const _grmCellData* lhs, const _grmCellData* rhs) { + // '0A' = 0, '0B' = 1, ..., '0Z' = 25, '00' = 26, ..., '09' = 35, '1A' = 36, ... + const int nAlphaSet = 'Z' - 'A' + 1; + const int nNumSet = '9' - '0' + 1; + const int nAlphaNumSet = nAlphaSet + nNumSet; + + CString str = lhs->m_strCellName; + char lhs_1st = str.Mid(str.GetLength() - 2, 1).GetAt(0); + char lhs_2st = str.Mid(str.GetLength() - 1, 1).GetAt(0); + + str = rhs->m_strCellName; + char rhs_1st = str.Mid(str.GetLength() - 2, 1).GetAt(0); + char rhs_2st = str.Mid(str.GetLength() - 1, 1).GetAt(0); + + auto GetCellValueFrom2stCellID = [&](char c) -> int { + if (c >= 'A' && c < 'Z') // 'A' �뒗 0遺��꽣 + return c - 'A'; + else if (c >= '0' && c <= '9') // '0' �� 26 遺��꽣 + return (c - '0') + nAlphaSet; + }; + return (lhs_1st - '0') * nAlphaNumSet + GetCellValueFrom2stCellID(lhs_2st) < (rhs_1st - '0') * nAlphaNumSet + GetCellValueFrom2stCellID(rhs_2st); +}; +/* < KJG 20221110 - #4373 ADD End >*/ CGlassRawCPJT::CGlassRawCPJT(void) { @@ -545,20 +569,32 @@ ////////////////////////////////////////////////////////////////////////// //CELL & DEFECT DATA + /* < KJG 20221110 - #4373 ADD Start >*/ + vector<_grmCellData*> vtSortCellData; + for (int iCell = 0; iCell < pData->GetGlassData()->m_nCellNum; iCell++) + vtSortCellData.push_back(pData->GetCellData(iCell)); + + sort(vtSortCellData.begin(), vtSortCellData.end(), CellIDSortFunc); + /* < KJG 20221110 - #4373 ADD End >*/ { - //make { for (int iCell = 0; iCell < pData->GetGlassData()->m_nCellNum; iCell++) { - _grmCellData* pCell = pData->GetCellData(iCell); + /* < KJG 20221110 - #4373 MOD Start >*/ + //_grmCellData* pCell = pData->GetCellData(iCell); + _grmCellData* pCell = vtSortCellData[iCell]; + /* < KJG 20221110 - #4373 MOD End >*/ makeDataCell(strLine, pData, pCell); fprintf(pf, "%s\n", strLine); for (int iDefect = 0; iDefect < pData->GetGlassData()->m_nDefectNum; iDefect++) { _grmDefectData* pDefect = pData->GetDefectData(iDefect); - if (pDefect->m_nCellIdx != iCell) continue; + /* < KJG 20221110 - #4373 MOD Start >*/ + //if (pDefect->m_nCellIdx != iCell) continue; + if (pDefect->m_nCellIdx != pCell->m_nCellID) continue; + /* < KJG 20221110 - #4373 MOD End >*/ //210203 CJH - CutOff ���긽 寃곌낵�뙆�씪 �옉�꽦 �젣�쇅 if (pDefect->m_bDefectCutoff == TRUE) continue; @@ -1307,10 +1343,13 @@ } // 16 2 STACK_COUNT // Count of Defect detected step SPRINTRAW(2, "%2d", pDefectData->m_nStackStepCount); - // 17 60 STACK_STEP // Flow(Step) of defect detection + // 17 60 -> 400 STACK_STEP // Flow(Step) of defect detection if (strlen(pDefectData->m_strStackFirst)) { - SPRINTRAW(60, "%s", pDefectData->m_strStackFirst); + /* < KMH 20220712 : #4230 MOD Start > */ + //SPRINTRAW(60, "%s", pDefectData->m_strStackFirst); + SPRINTRAW(400, "%s", pDefectData->m_strStackFirst); + /* < KMH 20220712 : #4230 MOD End > */ } else { @@ -2044,12 +2083,13 @@ sprintf(pServerFile, "%s", strFileName.GetBuffer(0)); sprintf(pLocalFile, "%s", strFileName.GetBuffer(0)); + CString strTime; CString strServerSubRawFilePath= NULL; CString strServerSubRawFileName = NULL; { strServerSubRawFilePath += NETWORK_AOIRAWFILE_SUB_PATH; - CString strTime; + CTime CurrTime = m_tmFileCreateTime; strTime.Format(_T("%04d%02d%02d_%02d%02d%02d"), CurrTime.GetYear(), CurrTime.GetMonth(), CurrTime.GetDay(), CurrTime.GetHour(), CurrTime.GetMinute(), CurrTime.GetSecond()); @@ -2085,6 +2125,16 @@ fprintf(pf, "SUMPATH= \n"); fclose(pf); } + /* < KJG 20230220 - #4403 ADD Start >*/ + // BLUE �꽕鍮� D_COLL 誘몃낫怨� �썝�씤 遺꾩꽍�쓣 �쐞�븳 Result_info.ini �뙆�씪 諛깆뾽 �깮�꽦 + CString strPathBackUpDir, strPathBackUpFile; + strPathBackUpDir.Format(_T("%s%s"), LOCAL_RAWPATH_INFO_INI_PATH, _T("ResultInfoBackUpFile")); + strPathBackUpFile.Format(_T("%s_%s.ini"), strGlassID, strTime); + + CreateDirectory(strPathBackUpDir, NULL); + strPathBackUpFile.Format("%s\\%s", strPathBackUpDir, strPathBackUpFile); + CopyFile(strRawFilePathName, strPathBackUpFile, FALSE); + /* < KJG 20230220 - #4403 ADD End >*/ } break; case FTPCMD_STACK: @@ -2225,6 +2275,8 @@ /* < KMH 20220311 : #3954 ADD End > */ case Judge_Unknown: sStr.Format("OK");//sStr.Format("Unknown"); //Unknown�룄 �씪�떒 OK break; + case Judge_SR: sStr.Format("SR"); /* < KJG 20221107 - #4360 ADD >*/ + break; default: sStr.Format("OK");//sStr.Format("Ets"); break; } -- Gitblit v1.9.3