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