From f1a543772246f59b8b52a8857270b38ee38f3588 Mon Sep 17 00:00:00 2001
From: LYW <leeyeanwoo@diteam.co.kr>
Date: 화, 31 5월 2022 09:07:13 +0900
Subject: [PATCH] AOI RawMessenger 동기화

---
 DitGlassRawMessenger/DitGlassRawMessenger/RawResultReader.cpp |  168 ++++++++++++++++++++++++++++++++++++++------------------
 1 files changed, 114 insertions(+), 54 deletions(-)

diff --git a/DitGlassRawMessenger/DitGlassRawMessenger/RawResultReader.cpp b/DitGlassRawMessenger/DitGlassRawMessenger/RawResultReader.cpp
index d5d79d1..e9bd828 100644
--- a/DitGlassRawMessenger/DitGlassRawMessenger/RawResultReader.cpp
+++ b/DitGlassRawMessenger/DitGlassRawMessenger/RawResultReader.cpp
@@ -59,11 +59,15 @@
 
 	strFileName.Format("%s\\%s", m_strLocalPath, pGlassID);
 
+
 	FILE* pf = fopen(strFileName.GetBuffer(0), "r");
 
 	if (pf == NULL)
 		return FALSE;
 		
+	/* <KMH 20220407 : #4053 ADD Start> */
+	AKLOG("Function : Read File Path: %s" , strFileName);
+	/* <KMH 20220407 : #4053 ADD End> */
 	/*< KJG 20211208 : #3696 ADD Start >*/
 	CDitGlassRawClient	GlassRawClient;
 	GlassRawClient.ConnectServer();
@@ -368,7 +372,9 @@
 	akFileDB.getItem("RawMerge_Use", &m_bStackUse, 0);
 	akFileDB.getItem("RawMerge_LocalPath", m_strLocalPath, "D:\\DIT_ResultData\\RawMerge");
 
-	if (m_bStackUse && m_nThreadStackFileReadFlag == 0)
+	//< SWK 20220413 - #4053 MOD >
+//	if (/*m_bStackUse && */m_nThreadStackFileReadFlag == 0)
+	if (m_nThreadStackFileReadFlag == 0)
 	{
 		_beginthread(threadResultFileRead, NULL, this);
 	}
@@ -395,7 +401,8 @@
 			nReadFailCount = 0;
 
 			AKLOG("RawMerge File Read Start : %s\\%s", pThis->m_strLocalPath, strGlassID);
-			Sleep(3000);
+			//< SWK 20220413 - #4053 DEL >
+//			Sleep(3000);
 			while (pThis->m_nProcessState == RPS_StateFileRead && pThis->m_nThreadStackFileReadFlag == 1)
 			{
 				if ((nThreadCount++ % 20) != 0) //명령 수행을 빠르게 감지 위한 조치
@@ -411,15 +418,19 @@
 				}
 
 				nReadFailCount++;
-				AKLOG("RawMerge File Read Try : %d", nReadFailCount);
+				//< SWK 20220413 - #4053 DEL >
+//				AKLOG("RawMerge File Read Try : %d", nReadFailCount);
 
 				if (nReadFailCount > 10)
 				{
 					pThis->m_nProcessState = RPS_ResultReadFail;
 					break;
 				}
+				//< SWK 20220413 - #4053 ADD >
+				AKLOG("RawMerge File Read Try : %d", nReadFailCount);
 
-				Sleep(50);
+				//< SWK 20220413 - #4053 DEL >
+//				Sleep(50);
 			}
 			if (pThis->m_nProcessState != RPS_ResultReadOK)
 			{
@@ -433,57 +444,90 @@
 	pThis->m_nThreadStackFileReadFlag = 0;
 }
 /* <LJC 20211122 : #3820 ADD Start> */
-void CRawResultReader::ProcessResultFileRead(void * pArg)
+/*< SWK 20220413 - #4053 MOD Start >*/
+//void CRawResultReader::ProcessResultFileRead(void * pArg)
+void CRawResultReader::ProcessResultFileRead()
+/*< SWK 20220413 - #4053 MOD End >*/
 {
-	CRawResultReader* pThis = (CRawResultReader*)pArg;
-
-	pThis->m_nThreadStackFileReadFlag = 1;
+	/*< SWK 20220413 - #4053 MOD Start >*/
+//	CRawResultReader* pThis = (CRawResultReader*)pArg;
+//
+//	pThis->m_nThreadStackFileReadFlag = 1;
+// 	int nReadFailCount = 0;
+// 	int nThreadCount = 0;
+//	CString strGlassID;
+//
+// 	while (pThis->m_nThreadStackFileReadFlag == 1)
+// 	{
+//		if (pThis->m_nProcessState == RPS_CmdFileRead) //스택파일 읽기 수행 [김태현 2019/1/12]
+//		{
+//			strGlassID = pThis->m_strGlassID;
+//
+//			pThis->m_nProcessState = RPS_StateFileRead;
+// 			nThreadCount = 0;
+// 			nReadFailCount = 0;
+//			AKLOG("RawMerge File Read Start : %s\\%s", pThis->m_strLocalPath, strGlassID);
+//			Sleep(3000);
+// 			while (pThis->m_nProcessState == RPS_StateFileRead && pThis->m_nThreadStackFileReadFlag == 1)
+// 			{
+// 				if (pThis->openFile(strGlassID.GetBuffer(0)) == TRUE)
+// 				{
+// 					pThis->m_nProcessState = RPS_ResultReadOK;
+// 					AKLOG("RawMerge File Read Complete ");
+// 					break;
+// 				}
+// 				nReadFailCount++;
+//				AKLOG("RawMerge File Read Try : %d", nReadFailCount);
+// 				if (nReadFailCount > 10)
+// 				{
+// 					pThis->m_nProcessState = RPS_ResultReadFail;
+// 					break;
+// 				}
+//				Sleep(50);
+// 			}
+// 			if (pThis->m_nProcessState != RPS_ResultReadOK)
+// 			{
+// 				pThis->m_nProcessState = RPS_ResultReadFail;
+// 			}
+//		}
+// 		if (nReadFailCount)
+// 			Sleep(500);
+// 	}
+// 	pThis->m_nThreadStackFileReadFlag = 0;
+	m_nProcessState = RPS_StateFileRead;
 	int nReadFailCount = 0;
 	int nThreadCount = 0;
-	CString strGlassID;
-
-	while (pThis->m_nThreadStackFileReadFlag == 1)
+	AKLOG("RawMerge File Read Start : %s\\%s", m_strLocalPath, m_strGlassID);
+	while (m_nProcessState == RPS_StateFileRead && m_nThreadStackFileReadFlag == 1)
 	{
-		if (pThis->m_nProcessState == RPS_CmdFileRead) //스택파일 읽기 수행 [김태현 2019/1/12]
+		if (openFile(m_strGlassID.GetBuffer(0)) == TRUE)
 		{
-			strGlassID = pThis->m_strGlassID;
-
-			pThis->m_nProcessState = RPS_StateFileRead;
-			nThreadCount = 0;
-			nReadFailCount = 0;
-
-			AKLOG("RawMerge File Read Start : %s\\%s", pThis->m_strLocalPath, strGlassID);
-			Sleep(3000);
-			while (pThis->m_nProcessState == RPS_StateFileRead && pThis->m_nThreadStackFileReadFlag == 1)
-			{
-				if (pThis->openFile(strGlassID.GetBuffer(0)) == TRUE)
-				{
-					pThis->m_nProcessState = RPS_ResultReadOK;
-					AKLOG("RawMerge File Read Complete ");
-					break;
-				}
-				nReadFailCount++;
-				AKLOG("RawMerge File Read Try : %d", nReadFailCount);
-				if (nReadFailCount > 10)
-				{
-					pThis->m_nProcessState = RPS_ResultReadFail;
-					break;
-				}
-				Sleep(50);
-			}
-			if (pThis->m_nProcessState != RPS_ResultReadOK)
-			{
-				pThis->m_nProcessState = RPS_ResultReadFail;
-			}
+			m_nProcessState = RPS_ResultReadOK;
+			AKLOG("RawMerge File Read Complete ");
+			break;
 		}
-		if (nReadFailCount)
-			Sleep(500);
+		nReadFailCount++;
+		if (nReadFailCount > 10)
+		{
+			m_nProcessState = RPS_ResultReadFail;
+			break;
+		}
+		AKLOG("RawMerge File Read Try : %d", nReadFailCount);
 	}
-	pThis->m_nThreadStackFileReadFlag = 0;
+	if (m_nProcessState != RPS_ResultReadOK)
+	{
+		m_nProcessState = RPS_ResultReadFail;
+	}
+	/*< SWK 20220413 - #4053 MOD End >*/
 }
 /* <LJC 20211122 : #3820 ADD End> */
 BOOL CRawResultReader::RawMergeFileReadStart(char* pGlassID)
 {
+	/*< SWK 20220413 - #4053 ADD Start >*/
+	m_strGlassID = pGlassID;
+	m_nProcessState = RPS_CmdFileRead;
+	/*< SWK 20220413 - #4053 ADD End >*/
+
 	if (m_nThreadStackFileReadFlag == 0)
 	{
 		_beginthread(threadResultFileRead, NULL, this);
@@ -495,27 +539,43 @@
 		while (m_nProcessState == RPS_CmdFileStop) Sleep(0);
 	}
 
-	m_strGlassID = pGlassID;
-	m_nProcessState = RPS_CmdFileRead;
+	/*< SWK 20220413 - #4053 DEL Start >
+// 	m_strGlassID = pGlassID;
+// 	m_nProcessState = RPS_CmdFileRead;
+	< SWK 20220413 - #4053 DEL End >*/
 	
 	return TRUE;
 }
 /* <LJC 20211122 : #3820 ADD Start> */
 BOOL CRawResultReader::ProcessRawMergeFileReadStart(char * pGlassID)
 {
-
 	if (m_nThreadStackFileReadFlag == 0)
 	{
-		ProcessResultFileRead(this);
+		//< SWK 20220413 - #4053 MOD >
+//		ProcessResultFileRead(this);
+		ProcessResultFileRead();
 	}
-	if (m_nProcessState == RPS_StateFileRead)
+	/*< SWK 20220413 - #4053 MOD Start >*/
+// 	if (m_nProcessState == RPS_StateFileRead)
+// 	{
+// 		m_nProcessState = RPS_CmdFileStop;
+// 		while (m_nProcessState == RPS_CmdFileStop) Sleep(0);
+// 	}
+// 
+// 	m_strGlassID = pGlassID;
+// 	m_nProcessState = RPS_CmdFileRead;
+	else
 	{
-		m_nProcessState = RPS_CmdFileStop;
-		while (m_nProcessState == RPS_CmdFileStop) Sleep(0);
-	}
+		if (m_nProcessState == RPS_StateFileRead)
+		{
+			m_nProcessState = RPS_CmdFileStop;
+			while (!(m_nProcessState == RPS_ResultReadOK || m_nProcessState == RPS_ResultReadFail)) Sleep(0);
+		}
 
-	m_strGlassID = pGlassID;
-	m_nProcessState = RPS_CmdFileRead;
+		m_strGlassID = pGlassID;
+		m_nProcessState = RPS_CmdFileRead;
+	}
+	/*< SWK 20220413 - #4053 MOD End >*/
 
 	return TRUE;
 }

--
Gitblit v1.9.3