From 0c66940a8e2cf64c9890519901f433b3668216b6 Mon Sep 17 00:00:00 2001
From: KEJ <kimeungju@diteam.co.kr>
Date: 수, 26 6월 2024 15:13:18 +0900
Subject: [PATCH] Ongoing80 #4942 CF AOI Review Bin File Loading 실패 개선  1. GlassRawMessenger 동기화  2. BIN파일 FindFile 제거(RawMessenger, Review 공통)  3. Unloading 시 BIN파일 제거

---
 ReviewSystem/ReviewSystem/DitGlassRawClient.cpp |   61 ++++++++++++++++++------------
 1 files changed, 36 insertions(+), 25 deletions(-)

diff --git a/ReviewSystem/ReviewSystem/DitGlassRawClient.cpp b/ReviewSystem/ReviewSystem/DitGlassRawClient.cpp
index 914ff08..f1faed3 100644
--- a/ReviewSystem/ReviewSystem/DitGlassRawClient.cpp
+++ b/ReviewSystem/ReviewSystem/DitGlassRawClient.cpp
@@ -2,20 +2,15 @@
 #include "DitGlassRawClient.h"
 
 CDitGlassRawClient::CDitGlassRawClient(void)
-	: m_mxCommandProcess(FALSE, MUTEX_RAWMESSENGER)
+: m_mxCommandProcess(FALSE, MUTEX_RAWMESSENGER)
 {
 	m_hMapBasicInfo = NULL;
 	m_hMapGlassData = NULL;
-	m_pDitGlassClient =NULL;
+
 	m_pGlassRawInfo = NULL;
 	m_pGlassRawData = NULL;
 
 	m_nLastCommandIdx = -1;
-
-	m_pGlassData = NULL;
-	m_pBlockData = NULL;
-	m_pCellData = NULL;
-	m_pDefectData = NULL;
 }
 
 CDitGlassRawClient::~CDitGlassRawClient(void)
@@ -77,7 +72,7 @@
 }
 
 BOOL CDitGlassRawClient::ConnectGlassRawData()
-{	
+{
 	SIZE_T nGlassRawSharedSize = m_pGlassRawInfo->m_nGlassRawDataSize;
 
 	if(m_hMapGlassData == NULL)
@@ -105,7 +100,9 @@
 	m_pCellData   = (_grmCellData*)&m_pGlassRawData[m_pGlassRawInfo->m_nCellDataPoint];
 	m_pDefectData = (_grmDefectData*)&m_pGlassRawData[m_pGlassRawInfo->m_nDefectDataPoint];
 	m_pStackData = (_grmDefectData*)&m_pGlassRawData[m_pGlassRawInfo->m_nStackDataPoint];
+	/*< KJG 20211024 - #3487 ADD Start >*/
 	m_pRawMergeData = (_grmDefectData*)&m_pGlassRawData[m_pGlassRawInfo->m_nRawMergeDataPoint];
+	/*< KJG 20211024 - #3487 ADD End >*/
 
 	return TRUE;
 }
@@ -138,14 +135,14 @@
 
 	int nCmdId = (m_pGlassRawInfo->m_nCommandIdxWrite+1) % COMMAND_MAXCOUNT;
 
-	if(m_pGlassRawInfo->m_nCommandIdxRead == nCmdId)//占쏙옙占쏙옙 占쏙옙占쌕는곤옙占쏙옙 占쏙옙큘占쏙옙 占쏙옙占쌜곤옙 占싼뱄옙占쏙옙 占쏙옙占쌀다는곤옙!! [占쏙옙占쏙옙占쏙옙 2018/11/12]
+	if(m_pGlassRawInfo->m_nCommandIdxRead == nCmdId)//둘이 같다는것은 서큘러 버퍼가 한바퀴 돌았다는것!! [김태현 2018/11/12]
 	{
-		m_pGlassRawInfo->m_nCommandIdxRead++;//占쏙옙占쏙옙 占쏙옙占쏙옙占쏙옙 占쏙옙占?占싹놂옙占쏙옙 占쏙옙占쏙옙占싼댐옙. [占쏙옙占쏙옙占쏙옙 2018/11/12]
+		m_pGlassRawInfo->m_nCommandIdxRead++;//가장 오래된 명령 하나를 삭제한다. [김태현 2018/11/12]
 	}
 
 	m_pGlassRawInfo->m_nCommandBuffer[nCmdId].nCommand = (short)nCmd;
 	m_pGlassRawInfo->m_nCommandBuffer[nCmdId].strParam;
-	m_pGlassRawInfo->m_nCommandBuffer[nCmdId].nResult = -1; //-1占쏙옙占쏙옙占쏙옙, 0占쏙옙占쏙옙, 1占쏙옙占쏙옙 [占쏙옙占쏙옙占쏙옙 2018/11/13]
+	m_pGlassRawInfo->m_nCommandBuffer[nCmdId].nResult = -1; //-1수행전, 0실패, 1성공 [김태현 2018/11/13]
 
 
 	m_nLastCommandIdx = m_pGlassRawInfo->m_nCommandIdxWrite = nCmdId;
@@ -154,6 +151,30 @@
 
 	return TRUE;
 }
+
+/* < KJG 20240620 - #4942 ADD Start >*/
+void CDitGlassRawClient::ResetClientResultStep()
+{
+	if (isConnect() == FALSE) return;
+
+	if (m_pGlassRawInfo)
+	{
+		m_pGlassRawInfo->m_ClientResultStep = APS_RES_None;
+	}
+}
+
+emClientResult CDitGlassRawClient::GetClientResultStep()
+{
+	if (isConnect() == FALSE) return APS_RES_None;
+
+	if (m_pGlassRawInfo)
+	{
+		return m_pGlassRawInfo->m_ClientResultStep;
+	}
+
+	return APS_RES_None;
+}
+/* < KJG 20240620 - #4942 ADD End >*/
 
 emAOIProcStep CDitGlassRawClient::GetProcessStep()
 {
@@ -172,7 +193,9 @@
 	if(isConnect() == FALSE) return FALSE;
 	m_pGlassRawInfo->m_ClientProcStep = APS_GlassLoading;
 	m_pGlassData->m_bStackRead = FALSE;
+	/*< KJG 20211024 - #3487 ADD Start >*/
 	m_pGlassData->m_bRawMergeRead = FALSE;
+	/*< KJG 20211024 - #3487 ADD End >*/
 	return SetCommand(grcSequenceGlassLoading);
 }
 
@@ -192,7 +215,7 @@
 
 BOOL CDitGlassRawClient::SetReviewEnd()
 {
-    if(isConnect() == FALSE) return FALSE;
+	if(isConnect() == FALSE) return FALSE;
 	m_pGlassRawInfo->m_ClientProcStep = APS_ReviewEnd;
 	return SetCommand(grcSequenceReviewEnd);
 }
@@ -204,20 +227,10 @@
 	return SetCommand(grcSequenceCustomReviewDataRead);
 }
 
-CDitGlassRawClient* CDitGlassRawClient::GetInstance()
-{
-	if(m_pDitGlassClient == NULL)
-	{
-		m_pDitGlassClient = new CDitGlassRawClient;
-	}
-
-	return m_pDitGlassClient;
-}
-
 void CDitGlassRawClient::RemoveReviewDefects()
 {
 	int nDefectNum = m_pGlassData->m_nDefectNum;
-	int nRightDefectNum = 0;//占쏙옙占쏙옙占쏙옙 占쏙옙占쏙옙占십울옙 占쏙옙치占쏙옙 占쏙옙占쏙옙 占쏙옙占쏙옙
+	int nRightDefectNum = 0;//기준점 오른쪽에 위치한 결함 갯수
 	int nDefectDeleteNum = 0;
 	for(int i=nDefectNum-1; i>=0; i--)
 	{
@@ -238,5 +251,3 @@
 
 	m_pGlassData->m_nDefectNum = nDefectNum-nDefectDeleteNum;
 }
-
-CDitGlassRawClient* CDitGlassRawClient::m_pDitGlassClient;
\ No newline at end of file

--
Gitblit v1.9.3