From 26e2541b87ca76e16cf69399eb9a3cce62d2e864 Mon Sep 17 00:00:00 2001
From: LYW <leeyeanwoo@diteam.co.kr>
Date: 목, 14 10월 2021 17:58:19 +0900
Subject: [PATCH] Ongoing80 #3671 CF AOI Review 전설비 Align Matching 방법 개선

---
 DitGlassRawMessenger/DitGlassRawMessenger/MacroResultFile.cpp |  122 ++++++++++++++++++++++++++++++++--------
 1 files changed, 98 insertions(+), 24 deletions(-)

diff --git a/DitGlassRawMessenger/DitGlassRawMessenger/MacroResultFile.cpp b/DitGlassRawMessenger/DitGlassRawMessenger/MacroResultFile.cpp
index 565f53b..a7caac2 100644
--- a/DitGlassRawMessenger/DitGlassRawMessenger/MacroResultFile.cpp
+++ b/DitGlassRawMessenger/DitGlassRawMessenger/MacroResultFile.cpp
@@ -227,26 +227,74 @@
 	char* pReadPoint = NULL;
 	char *pStr;
 
+	CString stranelData = "DATA PANEL";
+	CString strSubPanelData = "DATA SUBPANEL";
+	CString strMaxAvgGray, strMaxPortion;
+
 	while (!feof(pf))
 	{
-		pStr = fgets(buffer, 1024, pf);
-		if (!strncmp(buffer, "DATA,", 5)) continue;
+		pStr = fgets(buffer, 1024, pf);		
 		if (strlen(buffer) <= 0 || pStr == NULL)
 			break;
-
-		//else if (!strncmp(buffer, "DATA\tSUBPANEL\t", 14))// 탭 파싱
-		else if (!strncmp(buffer, "DATA SUBPANEL ", 14))// 띄어쓰기 파싱
+		
+		if (!strncmp(buffer, stranelData, strlen(stranelData)))// 띄어쓰기 파싱
 		{
 			CakParser paser;
 			if (strlen(buffer) <= 0) continue;
-			paser.process(buffer);
+			paser.process(buffer, " ");
 			int nTokNum = paser.getTokNum();
-			if (nTokNum < 1) continue;
+			if (nTokNum < 42) continue;
+			strMaxAvgGray = paser.getTokStr(41);
+			strMaxPortion = paser.getTokStr(42);
+		}
 
-			if (nTokNum > 0) MacroSubPanel.PRO_IMAGE = paser.getTokStr(20);
-			if (nTokNum > 1) MacroSubPanel.AVG_GRAY = atof(paser.getTokStr(21));
-			if (nTokNum > 2) MacroSubPanel.PORTION = atof(paser.getTokStr(22));
+		if (!strncmp(buffer, strSubPanelData, strlen(strSubPanelData)))// 띄어쓰기 파싱
+		{
+			CakParser paser;
+			if (strlen(buffer) <= 0) continue;
+			paser.process(buffer, " ");
+			int nTokNum = paser.getTokNum();
+			if (nTokNum < 52) continue; //kyh 31->52
+			MacroSubPanel.PRO_IMAGE = paser.getTokStr(20);
+			MacroSubPanel.AVG_GRAY_0 = paser.getTokStr(21);
+			MacroSubPanel.PORTION_0 = paser.getTokStr(22);
+			//kyh 추가
+			MacroSubPanel.CORNER_GRAY_0 = paser.getTokStr(23);
+			MacroSubPanel.AVG_AMP_0 = paser.getTokStr(24);
+			MacroSubPanel.FFT_VAR_0 = paser.getTokStr(25);
+			MacroSubPanel.FFT_VAH_0 = paser.getTokStr(26);
+			MacroSubPanel.FFT_VAQ_0 = paser.getTokStr(27);
+			MacroSubPanel.FFT_PK_0 = paser.getTokStr(28);
 
+			MacroSubPanel.AVG_GRAY_1 = paser.getTokStr(29);
+			MacroSubPanel.PORTION_1 = paser.getTokStr(30);
+			//kyh 추가
+			MacroSubPanel.CORNER_GRAY_1 = paser.getTokStr(31);
+			MacroSubPanel.AVG_AMP_1 = paser.getTokStr(32);
+			MacroSubPanel.FFT_VAR_1 = paser.getTokStr(33);
+			MacroSubPanel.FFT_VAH_1 = paser.getTokStr(34);
+			MacroSubPanel.FFT_VAQ_1 = paser.getTokStr(35);
+			MacroSubPanel.FFT_PK_1 = paser.getTokStr(36);
+
+			MacroSubPanel.AVG_GRAY_2 = paser.getTokStr(37);
+			MacroSubPanel.PORTION_2 = paser.getTokStr(38);
+			//kyh 추가
+			MacroSubPanel.CORNER_GRAY_2 = paser.getTokStr(39);
+			MacroSubPanel.AVG_AMP_2 = paser.getTokStr(40);
+			MacroSubPanel.FFT_VAR_2 = paser.getTokStr(41);
+			MacroSubPanel.FFT_VAH_2 = paser.getTokStr(42);
+			MacroSubPanel.FFT_VAQ_2 = paser.getTokStr(43);
+			MacroSubPanel.FFT_PK_2 = paser.getTokStr(44);
+
+			MacroSubPanel.AVG_GRAY_3 = paser.getTokStr(45);
+			MacroSubPanel.PORTION_3 = paser.getTokStr(46);
+			//kyh 추가
+			MacroSubPanel.CORNER_GRAY_3 = paser.getTokStr(47);
+			MacroSubPanel.AVG_AMP_3 = paser.getTokStr(48);
+			MacroSubPanel.FFT_VAR_3 = paser.getTokStr(49);
+			MacroSubPanel.FFT_VAH_3 = paser.getTokStr(50);
+			MacroSubPanel.FFT_VAQ_3 = paser.getTokStr(51);
+			MacroSubPanel.FFT_PK_3 = paser.getTokStr(52);
 
 			vecMacroSubPanel.push_back(MacroSubPanel);
 		}
@@ -260,23 +308,49 @@
 	{
 		pGrmMura= pShared->GetCellData(i);
 		
-		//pGrmMura->clear();
+		strcpy(pGrmMura->m_strProImage, m_vecMacroSubPanel[i].PRO_IMAGE.GetBuffer(0));
+		strcpy(pGrmMura->m_strAvgGray_0, m_vecMacroSubPanel[i].AVG_GRAY_0.GetBuffer(0));
+		strcpy(pGrmMura->m_strPortion_0, m_vecMacroSubPanel[i].PORTION_0.GetBuffer(0));
+		//kyh 0622
+		strcpy(pGrmMura->m_strCorner_Gray_0, m_vecMacroSubPanel[i].CORNER_GRAY_0.GetBuffer(0));
+		strcpy(pGrmMura->m_strAvgAmp_0, m_vecMacroSubPanel[i].AVG_AMP_0.GetBuffer(0));
+		strcpy(pGrmMura->m_strFFTVar_0, m_vecMacroSubPanel[i].FFT_VAR_0.GetBuffer(0));
+		strcpy(pGrmMura->m_strFFTVah_0, m_vecMacroSubPanel[i].FFT_VAH_0.GetBuffer(0));
+		strcpy(pGrmMura->m_strFFTVaq_0, m_vecMacroSubPanel[i].FFT_VAQ_0.GetBuffer(0));
+		strcpy(pGrmMura->m_strFFTPK_0, m_vecMacroSubPanel[i].FFT_PK_0.GetBuffer(0));
 
-		strcpy(pGrmMura->m_strProImage, m_vecMacroSubPanel[i].PRO_IMAGE);
-		pGrmMura->m_fAvgGray = m_vecMacroSubPanel[i].AVG_GRAY;
-		pGrmMura->m_fPortion = m_vecMacroSubPanel[i].PORTION;
+		strcpy(pGrmMura->m_strAvgGray_1, m_vecMacroSubPanel[i].AVG_GRAY_1.GetBuffer(0));
+		strcpy(pGrmMura->m_strPortion_1, m_vecMacroSubPanel[i].PORTION_1.GetBuffer(0));
+		//kyh 0622
+		strcpy(pGrmMura->m_strCorner_Gray_1, m_vecMacroSubPanel[i].CORNER_GRAY_1.GetBuffer(0));
+		strcpy(pGrmMura->m_strAvgAmp_1, m_vecMacroSubPanel[i].AVG_AMP_1.GetBuffer(0));
+		strcpy(pGrmMura->m_strFFTVar_1, m_vecMacroSubPanel[i].FFT_VAR_1.GetBuffer(0));
+		strcpy(pGrmMura->m_strFFTVah_1, m_vecMacroSubPanel[i].FFT_VAH_1.GetBuffer(0));
+		strcpy(pGrmMura->m_strFFTVaq_1, m_vecMacroSubPanel[i].FFT_VAQ_1.GetBuffer(0));
+		strcpy(pGrmMura->m_strFFTPK_1, m_vecMacroSubPanel[i].FFT_PK_1.GetBuffer(0));
 
+		strcpy(pGrmMura->m_strAvgGray_2, m_vecMacroSubPanel[i].AVG_GRAY_2.GetBuffer(0));
+		strcpy(pGrmMura->m_strPortion_2, m_vecMacroSubPanel[i].PORTION_2.GetBuffer(0));
+		//kyh 0622
+		strcpy(pGrmMura->m_strCorner_Gray_2, m_vecMacroSubPanel[i].CORNER_GRAY_2.GetBuffer(0));
+		strcpy(pGrmMura->m_strAvgAmp_2, m_vecMacroSubPanel[i].AVG_AMP_2.GetBuffer(0));
+		strcpy(pGrmMura->m_strFFTVar_2, m_vecMacroSubPanel[i].FFT_VAR_2.GetBuffer(0));
+		strcpy(pGrmMura->m_strFFTVah_2, m_vecMacroSubPanel[i].FFT_VAH_2.GetBuffer(0));
+		strcpy(pGrmMura->m_strFFTVaq_2, m_vecMacroSubPanel[i].FFT_VAQ_2.GetBuffer(0));
+		strcpy(pGrmMura->m_strFFTPK_2, m_vecMacroSubPanel[i].FFT_PK_2.GetBuffer(0));
+
+		strcpy(pGrmMura->m_strAvgGray_3, m_vecMacroSubPanel[i].AVG_GRAY_3.GetBuffer(0));
+		strcpy(pGrmMura->m_strPortion_3, m_vecMacroSubPanel[i].PORTION_3.GetBuffer(0));
+		//kyh 0622
+		strcpy(pGrmMura->m_strCorner_Gray_3, m_vecMacroSubPanel[i].CORNER_GRAY_3.GetBuffer(0));
+		strcpy(pGrmMura->m_strAvgAmp_3, m_vecMacroSubPanel[i].AVG_AMP_3.GetBuffer(0));
+		strcpy(pGrmMura->m_strFFTVar_3, m_vecMacroSubPanel[i].FFT_VAR_3.GetBuffer(0));
+		strcpy(pGrmMura->m_strFFTVah_3, m_vecMacroSubPanel[i].FFT_VAH_3.GetBuffer(0));
+		strcpy(pGrmMura->m_strFFTVaq_3, m_vecMacroSubPanel[i].FFT_VAQ_3.GetBuffer(0));
+		strcpy(pGrmMura->m_strFFTPK_3, m_vecMacroSubPanel[i].FFT_PK_3.GetBuffer(0));
 	}
-	float Max_AVG_GRAY = m_vecMacroSubPanel[0].AVG_GRAY;
-	float Max_PORTION = m_vecMacroSubPanel[0].PORTION;
-
-	for (int i = 1; i < m_vecMacroSubPanel.size(); ++i)
-	{
-		Max_AVG_GRAY = max(Max_AVG_GRAY, m_vecMacroSubPanel[i].AVG_GRAY);    //큰 값을 다시 largest에 대입
-		Max_PORTION = max(Max_PORTION, m_vecMacroSubPanel[i].PORTION);
-	}
-	pShared->GetGlassData()->m_fMaxAvgGray = Max_AVG_GRAY;
-	pShared->GetGlassData()->m_fMaxPortion = Max_PORTION;
+	strcpy(pShared->GetGlassData()->m_strMaxAvgGray, strMaxAvgGray.GetBuffer(0));
+	strcpy(pShared->GetGlassData()->m_strMaxPortion, strMaxPortion.GetBuffer(0));
 
 	m_bReadSuccess = TRUE;
 	return TRUE;

--
Gitblit v1.9.3