From 572aebd50409d2f11183d6ebbb9d12fe9041e7a5 Mon Sep 17 00:00:00 2001
From: LYW <leeyeanwoo@diteam.co.kr>
Date: 화, 17 8월 2021 18:47:48 +0900
Subject: [PATCH] Ongoing100 #3561 CF AOI Review Align 카메라 끊김 현상 조치

---
 ReviewSystem/ReviewSystem/SequenceProcessor_CPJT.cpp |  803 +++++++++++++++++++++++++++++++-------------------------
 1 files changed, 441 insertions(+), 362 deletions(-)

diff --git a/ReviewSystem/ReviewSystem/SequenceProcessor_CPJT.cpp b/ReviewSystem/ReviewSystem/SequenceProcessor_CPJT.cpp
index 8e83b9e..8a5933b 100644
--- a/ReviewSystem/ReviewSystem/SequenceProcessor_CPJT.cpp
+++ b/ReviewSystem/ReviewSystem/SequenceProcessor_CPJT.cpp
@@ -51,7 +51,7 @@
 #define AOIRAWBIN_NETWORK_DRIVE_PATH	"Y:\\RawBin"
 
 enum CPJT_MeasureMode { CPJT_ModeAuto = 0, CPJT_ModeManual };
-// [2017:4:18]-[WEZASW] : WSI Module 占쏙옙占쏙옙 占쏙옙占쏙옙占쏙옙 占쏙옙占� PlanType 占쏙옙호 占쏙옙占쏙옙.
+// [2017:4:18]-[WEZASW] : WSI Module 
 enum CPJT_PlanType { CPJT_PlanReview = 0, CPJT_PlanUser, CPJT_PlanWSI, CPJT_PlanMeasure, CPJT_PlanReflow, CPJT_PlanWsiReflow, CPJT_PlanWsiUser,CPJT_PlanWsiMultiShot
 };
 enum CPJT_InsepectionType{REVIEW_REFLOW = 0, WSI_REFLOW, REV_WSI,WSIUSER, USER,WSIMULTISHOT};
@@ -169,7 +169,7 @@
 	CDitGlassRawClient* pDitGlassRaw = CDitGlassRawClient::GetInstance();
 	if(pDitGlassRaw->ConnectServer() == FALSE)
 	{
-		g_pLog->DisplayMessage(_T("占쏙옙占쏙옙占쌨몌옙 占쏙옙占쏙옙 占쏙옙占쏙옙!(Shared memory Access Fail)"));
+		g_pLog->DisplayMessage(_T("(Shared memory Access Fail)"));
 	}
 }
     
@@ -183,17 +183,15 @@
 	EnterCriticalSection(&m_csProcessStatus);
 	
 	BOOL bReturn = FALSE;
-
-	// 占쏙옙占쏙옙 占쏙옙占승곤옙 占쏙옙占쏙옙 占쏙옙占승울옙 占쌕몌옙占쏙옙?
 	
 	//if (nProcessStatus!=m_nProcessStatus || nProcessStatus==0)
 	if (1)//nProcessStatus!=m_nProcessStatus || nProcessStatus==0)
 	{
-		//if (nProcessStatus==0) // 占십깍옙(0) 占쏙옙占쏙옙占싱몌옙..
+		//if (nProcessStatus==0) 
 		//{
 		//	bReturn = TRUE;
 		//}
-		//	else if (nProcessStatus==(m_nProcessStatus+1)) // 占쏙옙占쏙옙 占쏙옙占쏙옙 占쏙옙占쏙옙(+1)占싱몌옙..	
+		//	else if (nProcessStatus==(m_nProcessStatus+1)) 
 		//	{
 		//		bReturn = TRUE;
 		//	}
@@ -204,9 +202,8 @@
 		//	bReturn = FALSE;
 		//}
 		
-		if (bReturn) // 占쏙옙占쏙옙占싱몌옙...
+		if (bReturn) 
 		{
-			// Thread 占쏙옙占쏙옙 占쏙옙 Thread 占쏙옙占쏙옙
 			CSequenceProcessData* pThreadData = new CSequenceProcessData(this);
 			if (pThreadData)
 			{
@@ -227,7 +224,6 @@
 			}
 		}
 		else if(nProcessStatus==2){
-			// Thread 占쏙옙占쏙옙 占쏙옙 Thread 占쏙옙占쏙옙
 			CSequenceProcessData* pThreadData = new CSequenceProcessData(this);
 			if (pThreadData)
 			{
@@ -277,7 +273,6 @@
 	CReviewResult* pWsiResult = pGlassResult->GetWsiResult(nModuleIndex);
 	if (pWsiResult==NULL) goto RESULT_FAIL;
 
-	// 占쏙옙占쏙옙占쏙옙 占싸듸옙占쏙옙占쏙옙 占쏙옙占쏙옙占승댐옙.
 	int nCurResultIdx	= pWsiResult->GetLastSReviewResultIndex() + 1; // last index + 1
 	int nStartResultIdx	= pWsiResult->GetStartSReviewResultIndex();
 	int nEndResultIdx	= pWsiResult->GetEndSReviewResultIndex();
@@ -291,13 +286,11 @@
 	int		nMPosY	= int(pPosition->dMotorPosY * 1000.0);
 	double	dTime	= (double) m_ProcessTimer.GetDurationMilliSecond();
 
-	// 占싸듸옙占쏙옙占쏙옙 占쌕몌옙占쏙옙 占쏙옙占쏙옙占쏙옙占쏙옙.
 	if (measureResut.nResultIndex != nCurResultIdx) 
 	{
 		goto RESULT_FAIL;
 	}
 
-	// 占쏙옙占쏙옙 占쏙옙占쏙옙占쏙옙 占쏙옙占쏙옙.
 	// measureResut
 
 	if(pWsiResult->GetSReviewResultCount() == 0) return ;
@@ -324,7 +317,6 @@
 	// set last result idx
 	pWsiResult->SetLastSReviewResultIndex(nCurResultIdx);
 
-	// 占쏙옙占쏙옙占쏙옙 占쏙옙占쏙옙트占쏙옙占쏙옙 占쌉곤옙, WSI 占쏙옙占쏙옙占� 占쏙옙占쏙옙 占쏙옙占쏙옙占쏙옙...
 	if(nCurResultIdx==nEndResultIdx && nCurResultIdx<=pWsiResult->GetSReviewResultCount())
 	{
 		nStartResultIdx = nCurResultIdx + 1;
@@ -335,8 +327,7 @@
 		pWsiResult->SetStartSReviewResultIndex(nStartResultIdx);
 		pWsiResult->SetEndSReviewResultIndex(nEndResultIdx);
 
-		// 占쏙옙占쏙옙占쏙옙 占쏙옙占쏙옙트 占쏙옙占쏙옙 占쏙옙占쏙옙占쏙옙占쏙옙.
-		::Sleep(3000); // 占쏙옙占쏙옙甄占� 占십쇽옙占쏙옙. 占쏙옙占쏙옙占쏙옙 占쏙옙占쏙옙 占쏙옙占쏙옙.
+		::Sleep(3000); 
 //		Process_RemainWsiPoint(nModuleIndex);
 	}
 
@@ -362,7 +353,6 @@
 	CReviewResult* pWsiResult = pGlassResult->GetWsiUserResult(nModuleIndex);
 	if (pWsiResult==NULL) goto RESULT_FAIL;
 
-	// 占쏙옙占쏙옙占쏙옙 占싸듸옙占쏙옙占쏙옙 占쏙옙占쏙옙占승댐옙.
 	int nCurResultIdx	= pWsiResult->GetLastSReviewResultIndex() + 1; // last index + 1
 	int nStartResultIdx	= pWsiResult->GetStartSReviewResultIndex();
 	int nEndResultIdx	= pWsiResult->GetEndSReviewResultIndex();
@@ -376,13 +366,11 @@
 	int		nMPosY	= int(pPosition->dMotorPosY * 1000.0);
 	double	dTime	= (double) m_ProcessTimer.GetDurationMilliSecond();
 
-	// 占싸듸옙占쏙옙占쏙옙 占쌕몌옙占쏙옙 占쏙옙占쏙옙占쏙옙占쏙옙.
 	if (measureResut.nResultIndex != nCurResultIdx) 
 	{
 		goto RESULT_FAIL;
 	}
 
-	// 占쏙옙占쏙옙 占쏙옙占쏙옙占쏙옙 占쏙옙占쏙옙.
 	// measureResut
 
 	if(pWsiResult->GetSReviewResultCount() == 0) return ;
@@ -407,7 +395,6 @@
 	// set last result idx
 	pWsiResult->SetLastSReviewResultIndex(nCurResultIdx);
 
-	// 占쏙옙占쏙옙占쏙옙 占쏙옙占쏙옙트占쏙옙占쏙옙 占쌉곤옙, WSI 占쏙옙占쏙옙占� 占쏙옙占쏙옙 占쏙옙占쏙옙占쏙옙...
 	if(nCurResultIdx==nEndResultIdx && nCurResultIdx<=pWsiResult->GetSReviewResultCount())
 	{
 		nStartResultIdx = nCurResultIdx + 1;
@@ -418,8 +405,7 @@
 		pWsiResult->SetStartSReviewResultIndex(nStartResultIdx);
 		pWsiResult->SetEndSReviewResultIndex(nEndResultIdx);
 
-		// 占쏙옙占쏙옙占쏙옙 占쏙옙占쏙옙트 占쏙옙占쏙옙 占쏙옙占쏙옙占쏙옙占쏙옙.
-		::Sleep(3000); // 占쏙옙占쏙옙甄占� 占십쇽옙占쏙옙. 占쏙옙占쏙옙占쏙옙 占쏙옙占쏙옙 占쏙옙占쏙옙.
+		::Sleep(3000); 
 		//		Process_RemainWsiPoint(nModuleIndex);
 	}
 
@@ -442,6 +428,8 @@
  		g_pLog->DisplayMessage(_T("[AlignResult] Glass Result is NULL!"));
  		SendResultToSignalControl(PCControlSendData_AlignResult_CPJT, SIGNAL_SEND_RESULT_FAIL);
  		m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::AlignStart] Send Align Fail Signal!"));
+
+		AlignCamera_CameraControl(CameraControlStop);  // 210805 Align Camera Sequence 占쏙옙占쏙옙
  		return;
 	}
 
@@ -449,7 +437,6 @@
  	CAlignResult *pAlignResult = &pGlassResult->m_AlignResult;
  	CAlignRecipe *pAlignRecipe = &pGlassResult->m_AlignRecipe; 
  
- 	// 占쏙옙占쏙옙占� 占쌘듸옙占쏙옙占쏙옙 占쏙옙占� 占쏙옙占쏙옙占실울옙 占쏙옙占쏙옙占쏙옙占쏙옙. 
  	CRsRcpAlignInfo *pRsRcpAlignInfo = m_pSP2P->ISP2P_Recipe_GetRsRcpAlignInfo();
  	if (pRsRcpAlignInfo!=NULL && pRsRcpAlignInfo->m_bAutoProcess)
  	{
@@ -463,25 +450,21 @@
  			pRsRcpAlignInfo->m_dSecondCamExposure = pCurAlignResult->dExposureTime[1];
  		}
  
- 		// 占쏙옙占쏙옙占쏙옙 占쏙옙占쏙옙타 占쏙옙占쏙옙
  		//m_pDoc->Recipe_WriteRecipeFile();
  	}
  
  
  	BOOL bLastAlignResult = FALSE;
  	CCoordCalibrator *pCoordCalibrator = m_pSP2P->ISP2P_GetCoordCalibrator();
- 	// 占쏙옙占쏙옙 占쏙옙占쏙옙占� 占쏙옙占�..
  	if (pCoordCalibrator && pCurAlignResult->nResultCode==Align_Success)
  	{
  		g_pLog->DisplayMessage(_T("[AlignResult] Align Find Success!"));
  
- 		// 占쏙옙占쏙옙占� 占쏙옙占� 占쌜띰옙 占쏙옙占쏙옙占쏙옙 占쏙옙占쏙옙
  		*pAlignResult = *pCurAlignResult;
  
  		pCoordCalibrator->SetFirstMarkPos(pAlignResult->dFindPositionX[0], pAlignResult->dFindPositionY[0], pAlignRecipe->dGlassPositionX[0], pAlignRecipe->dGlassPositionY[0]);
  		pCoordCalibrator->SetSecondMarkPos(pAlignResult->dFindPositionX[1], pAlignResult->dFindPositionY[1], pAlignRecipe->dGlassPositionX[1], pAlignRecipe->dGlassPositionY[1]);
  
- 		// 占쏙옙占쏙옙 占쏙옙占�
  		if(pCoordCalibrator->CalculateAlignResult() == TRUE)
  		{
  			sAlignResult = pCoordCalibrator->GetAlignResult();
@@ -490,38 +473,35 @@
  			bLastAlignResult = !pAlignRecipe->bRotateProcess;
  		}
  
- 		// 占쌜띰옙 占쏙옙占쏙옙 占쏙옙占쏙옙 占쏙옙占쏙옙
  		CCameraControlAlign *pAlignCameraControl	= m_pSP2P->ISP2P_GetAlignCameraControl();
  		SThetaMotorInfo* pThetaMotorInfo			= m_pSP2P->ISP2P_GetThetaMotorInfo();
  		CMotorControl* pMotorControl				= m_pSP2P->ISP2P_GetMotorControl();
  
  		if (pAlignRecipe->bRotateProcess && pAlignCameraControl && pMotorControl && pThetaMotorInfo)
  		{
- 			if (fabs(sAlignResult.dDegree) <= pAlignRecipe->dGlassAngleMin) // 占쏙옙占쏙옙 占쌜띰옙 占쏙옙占쏙옙占쏙옙 占쌍소곤옙占쏙옙占쏙옙 占쏙옙占쏙옙占쏙옙 占쏙옙占쏙옙
+ 			if (fabs(sAlignResult.dDegree) <= pAlignRecipe->dGlassAngleMin) 
  			{
  				bLastAlignResult = TRUE;
  				g_pLog->DisplayMessage(_T("[AlignResult] Success! Last Glass Angle : %.8lf degree, Retry Count : %d ea"), 
  					sAlignResult.dDegree,  pCurAlignResult->nFindCount);
  			}
- 			else if (fabs(sAlignResult.dDegree) > pAlignRecipe->dGlassAngleMax) // 占쏙옙占쏙옙 占쌜띰옙 占쏙옙占쏙옙占쏙옙 占쌍대각占쏙옙占쏙옙 크占쏙옙 占쏙옙占쏙옙
+ 			else if (fabs(sAlignResult.dDegree) > pAlignRecipe->dGlassAngleMax) 
  			{
  				bLastAlignResult = FALSE;
  				g_pLog->DisplayMessage(_T("[AlignResult] FAIL! Last Glass Angle : %.8lf degree, Retry Count : %d ea"), 
  					sAlignResult.dDegree,  pCurAlignResult->nFindCount);
  			}
- 			else if (pCurAlignResult->nFindCount < pAlignRecipe->nRetryCount) // 占썹보占쏙옙 횟占쏙옙占쏙옙 占쏙옙占쏙옙占쏙옙 횟占쏙옙 占쏙옙占쏙옙占싱몌옙 占썹보占쏙옙 占쏙옙占쏙옙
+ 			else if (pCurAlignResult->nFindCount < pAlignRecipe->nRetryCount)
  			{
  				g_pLog->DisplayMessage(_T("[AlignResult] Current Glass Angle : %.8lf degree, Retry Count : %d ea"), 
  					sAlignResult.dDegree,  pCurAlignResult->nFindCount);
  
- 				// 占쏙옙占싶뤄옙 占쏙옙占쏙옙 占쏙옙占쏙옙..
  				double dCalAngle = sAlignResult.dDegree;
  				dCalAngle = pThetaMotorInfo->dPosition - dCalAngle ;
  				g_pLog->DisplayMessage(_T("[AlignResult] Move Rotate Glass Angle : %.8lf degree"), dCalAngle);
  				pMotorControl->AxisThetaManualGoEnd(dCalAngle);
  				::Sleep(100);
  
- 				// 占쏙옙占쏙옙占� ReProcess
  				if (pAlignCameraControl->AlignProcess())
  				{
  					g_pLog->DisplayMessage(_T("[AlignResult] Align Find Process ReStarted!"));
@@ -556,8 +536,7 @@
  		//m_pView->SetAlignResult(pAlignResult->nResultCode, sAlignResult.dOriginX, sAlignResult.dOriginY, sAlignResult.dDegree);
  	}
  
-	// PCControl 占쏙옙占쏙옙占� 占쏙옙호 占쏙옙占쏙옙.
-	if (bLastAlignResult) // 占쏙옙占쏙옙 占쏙옙占쏙옙寬占쏙옙...
+	if (bLastAlignResult) 
 	{	
 		SendResultToSignalControl(PCControlSendData_AlignResult_CPJT, SIGNAL_SEND_RESULT_SUCCESS);
 		m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::AlignStart] Send Align Success Data!"));
@@ -567,6 +546,8 @@
 		SendResultToSignalControl(PCControlSendData_AlignResult_CPJT, SIGNAL_SEND_RESULT_FAIL);
 		m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::AlignStart] Send Align Fail Data!"));
 	}
+
+	AlignCamera_CameraControl(CameraControlStop);  // 210805 Align Camera Sequence 蹂�寃�
 
 	SendSignalToSignalControl(PCControlSendSignalIndex_Seq, PCControlSend_AlignComplete_CPJT);
 	m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::AlignStart] Send Align Complete Signal!"));
@@ -689,13 +670,10 @@
 		m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::ReviewStart] Send Review Success Signal!"));
 		m_pSP2P->ISP2P_UpdateReviewProcessStatus(ReviewProcessStatus_None, nPlanIndex);
 		 
-
-		//占쏙옙占쏙옙占�
 		AFM_SetAFMTracking(FALSE);
 		return;
 	}
 
-	//190727 chm WSI 占쏙옙占쏙옙占� End 체크 占쏙옙 占쏙옙占쏙옙
 	if(nBeforePlanIndex== CPJT_PlanWSI||nBeforePlanIndex== CPJT_PlanWsiReflow||nBeforePlanIndex== CPJT_PlanWsiUser)
 	{
 		if(pPlanInfo->m_nReviewType == CPJT_PlanWSI ||pPlanInfo->m_nReviewType == CPJT_PlanWsiReflow||pPlanInfo->m_nReviewType== CPJT_PlanWsiUser || pPlanInfo->m_nReviewType == CPJT_PlanWsiMultiShot)
@@ -724,13 +702,12 @@
 		}
 	}
 
-	//190727 chm WSI type 占쏙옙占쏙옙占쏙옙 Review 占시뤄옙占쏙옙 占쏙옙占쏙옙占� 카占쌨띰옙 占쌜띰옙 占쌜울옙 占쏙옙占쏙옙占쏙옙痢� 占쏙옙占쏙옙... 
 	if(nBeforePlanIndex== CPJT_PlanWSI ||nBeforePlanIndex== CPJT_PlanWsiReflow||nBeforePlanIndex== CPJT_PlanWsiUser)
 	{
 		if(  pPlanInfo->m_nReviewType == CPJT_PlanReview|| pPlanInfo->m_nReviewType == CPJT_PlanUser|| pPlanInfo->m_nReviewType == CPJT_PlanMeasure|| pPlanInfo->m_nReviewType == CPJT_PlanReflow)
 		{
 
-			CTotalPitchMeasure* pTotapPithMeasure = m_pSP2P->ISP2P_GetTotalPitchMeasure(); // 占쏙옙占쏙옙占쏙옙占�! 20190730 chm 占쏙옙占쌩울옙 占쌉쇽옙占쏙옙 占쏙옙占쏙옙....
+			CTotalPitchMeasure* pTotapPithMeasure = m_pSP2P->ISP2P_GetTotalPitchMeasure();
 	
 			const CMotorControlInfo* pSystemMotorInfo = m_pSP2P->ISP2P_System_GetMotorInfo();
 			if(pSystemMotorInfo !=NULL) 
@@ -774,8 +751,6 @@
 		if(pPlanInfo == NULL) continue;
 
 		//210325
-		//END 占쏙옙 占쏙옙琯占쏙옙占� 占실억옙占쏙옙占쏙옙占쏙옙占� 占쌔댐옙 占쌉쇽옙占쏙옙 占쏙옙占쏙옙占쏙옙占� 占쏙옙占싣곤옙占쏙옙 占쌍억옙 start 占쌉쇽옙占쏙옙 타占쏙옙占쏙옙 
-		//占쌓것울옙 占쏙옙占쏙옙 占쏙옙占쏙옙처占쏙옙 
 		if (GetProcessStatus() == ProcessReviewEnd_CPJT || GetProcessStatus() == ProcessReviewUnloding_CPJT)
 		{
 			g_pLog->DisplayMessage(_T("[ProcessStop] StartProcessing Sequence Stop Status : %d"), GetProcessStatus());
@@ -788,7 +763,7 @@
 			if (( nTotalCount += pGlassResult->GetTotalSReviewResultCount()) > 0)
 			{
 				m_pSP2P->ISP2P_DisplayMessage(_T("[Sequence Processor] Review Plan Start!"));
-				//LYW DCOLL 임시조치
+				//LYW DCOLL 占쌈쏙옙占쏙옙치
 				CDitGlassRawClient *pDitRawClient = CDitGlassRawClient::GetInstance();
 				if (pDitRawClient->isConnect() == TRUE)
 				{
@@ -801,7 +776,7 @@
 
 					strcpy(pSharedDefectReview->m_strRevImageName, "");
 				}
-				//LYW DCOLL 임시조치
+				//LYW DCOLL 占쌈쏙옙占쏙옙치
 				::Sleep(nWaitTime);
 				m_pSP2P->ISP2P_GetReviewProcessor()->ResetGantryDone();
 				bExcute = ReviewStartProcessing(pGlassResult, nPlanIdx);
@@ -830,7 +805,7 @@
 				m_pSP2P->ISP2P_DisplayMessage(_T("[Sequence Processor] WSI Plan End!"));
 			}
 			break;
-		//占싱삼옙占�
+
 		case CPJT_PlanMeasure:
 			if (( nTotalCount += pGlassResult->GetTotalSMeasureResultCount()) > 0)
 			{
@@ -930,6 +905,9 @@
 		break;
 
 	}
+	//#3584 210817 LYW CF AOI Review �떆裕щ젅�씠�뀡 湲곕뒫 �젙�긽�솕 ADD START
+	SetSimulationMode(FALSE);
+	//#3584 210817 LYW CF AOI Review �떆裕щ젅�씠�뀡 湲곕뒫 �젙�긽�솕 ADD END
 	return;
 }
 
@@ -939,17 +917,28 @@
 
 	AllAckSignalOff();
 	m_pSP2P->ISP2P_GetReviewProcessor()->ResetGantryDone();
-	SetCheckWSIEnd(-1); //190726 wsiend체크 占십깍옙화
-	SetWsiType(-1);    //wsi reflow 타占쏙옙 占쏙옙占쏙옙 占십깍옙화
+	SetCheckWSIEnd(-1); //190726
+	SetWsiType(-1);    //wsi reflow
 	SetLastPointCheck(FALSE);
 
 	bFileFind = FALSE;
 
 	m_pSP2P->ISP2P_GetDiagnosisHistory();
-	
-	if (SendSignalToSignalControl(PCControlSendSignalIndex_Ack, PCControlSend_LoadingAck_CPJT))
-		m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::GlassLoading] Send Loading Ack Signal!"));
 
+	m_pSP2P->ISP2P_SetFirstReviewLeft(TRUE);
+	m_pSP2P->ISP2P_SetFirstReviewRight(TRUE);
+
+	//#3584 210817 LYW CF AOI Review �떆裕щ젅�씠�뀡 湲곕뒫 �젙�긽�솕 MOD START
+	if (GetSimulationMode() == FALSE)
+	{
+		if (SendSignalToSignalControl(PCControlSendSignalIndex_Ack, PCControlSend_LoadingAck_CPJT))
+			m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::GlassLoading] Send Loading Ack Signal!"));
+	}
+	//#3584 210817 LYW CF AOI Review �떆裕щ젅�씠�뀡 湲곕뒫 �젙�긽�솕 MOD END
+	//Original
+// 	if (SendSignalToSignalControl(PCControlSendSignalIndex_Ack, PCControlSend_LoadingAck_CPJT))
+// 		m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::GlassLoading] Send Loading Ack Signal!"));
+	
  	// read config file
  	if(!m_pSP2P->ISP2P_System_ReadConfigFile())
  		m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor] System Value Loading FAIL!"));	
@@ -967,18 +956,18 @@
  	}
  	m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::Loading] Glass Result Count : %d ea"), nGlassResultCount);
 	
-	pGlassResult->ResetDefocusCount();//占싸듸옙 占싸분울옙占쏙옙 defocus count 占십깍옙화 190821 chm
+	pGlassResult->ResetDefocusCount();
 
 
  	CTime time = CTime::GetCurrentTime();
  	pGlassResult->m_strResultDate.Format(_T("%04d.%02d.%02d"), time.GetYear(), time.GetMonth(), time.GetDay());
 
-	//if(Revolver_SetGoHome(0)) // 占쏙옙占쏙옙占쏙옙 HOME 占쏙옙占쏙옙占쏙옙 
+	//if(Revolver_SetGoHome(0)) 
 	//{
 	//	m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::Loading] Revolver Set GoHome Success!"));
 	//}
 
-	//#3357 KYH Align Image 占십깍옙화 ADD START
+	//#3357 KYH Align Image ADD START
 	CCameraControlAlign* pAlignCameraControl = m_pSP2P->ISP2P_GetAlignCameraControl();
 	if (pAlignCameraControl != NULL)
 	{
@@ -986,7 +975,7 @@
 
 		g_pLog->DisplayMessage(_T("[Align] Align Image Clear"));
 	}
-	//#3357 KYH Align Image 占십깍옙화 ADD END
+	//#3357 KYH Align Image ADD END
 
  	// get transfer data
  	int nResultCode = 0;
@@ -1013,13 +1002,20 @@
 
 			if (pDitRawClient->isConnect()==FALSE)
 			{
-				m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::GlassLoading]占쏙옙占쏙옙占쌨몌옙 占쏙옙占쏙옙 占쏙옙占쏙옙 占썹연占쏙옙 占시듸옙 "));
+				m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::GlassLoading] DitRawClient Connect Fail "));
 				int nReconnect=0;
 				while (1)
 				{
 					if (nReconnect == 3)
 					{
-						SendResultToSignalControl(PCControlSendData_LoadingResult_CPJT, SIGNAL_SEND_RESULT_FAIL);
+						//#3584 210817 LYW CF AOI Review �떆裕щ젅�씠�뀡 湲곕뒫 �젙�긽�솕 MOD START
+						if (GetSimulationMode() == FALSE)
+						{
+							SendResultToSignalControl(PCControlSendData_LoadingResult_CPJT, SIGNAL_SEND_RESULT_FAIL);
+						}
+						//#3584 210817 LYW CF AOI Review �떆裕щ젅�씠�뀡 湲곕뒫 �젙�긽�솕 MOD END
+						//original
+						/*SendResultToSignalControl(PCControlSendData_LoadingResult_CPJT, SIGNAL_SEND_RESULT_FAIL);*/
 						m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::GlassLoading] Send Loading FAIL Signal!"));
 
 						break;
@@ -1028,11 +1024,11 @@
 					Sleep(1000);
 					if (pDitRawClient->isConnect() == FALSE)
 					{
-						m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::GlassLoading]占쏙옙占쏙옙占쌨몌옙 占쏙옙占쏙옙 占쏙옙占쏙옙 Count[%d]"), nReconnect);
+						m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::GlassLoading]DitRawClient Connect Fail Count[%d]"), nReconnect);
 					}
 					else
 					{
-						m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::GlassLoading]占쏙옙占쏙옙占쌨몌옙 占쏙옙占쏙옙 占쏙옙占쏙옙"));
+						m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::GlassLoading]DitRawClient Connect Success"));
 						break;
 					}
 					nReconnect += 1;
@@ -1042,9 +1038,9 @@
 
 			}
 
-			// #3381 LYW CF AOI Review 占쏙옙占쏙옙占쏙옙 FDC TackTime 占쏙옙占쏙옙占쏙옙 占쏙옙占쏙옙 占쏙옙占쏙옙 ADD START
+			// #3381 LYW CF AOI Review FDC TackTime ADD START
 			pDitRawClient->GetGlassData()->m_tmReviewLoading = CTime::GetCurrentTime();
-			// #3381 LYW CF AOI Review 占쏙옙占쏙옙占쏙옙 FDC TackTime 占쏙옙占쏙옙占쏙옙 占쏙옙占쏙옙 占쏙옙占쏙옙 ADD END
+			// #3381 LYW CF AOI Review FDC TackTime ADD END
 			
 
 			CString strGlassIDTemp = NULL;
@@ -1061,15 +1057,21 @@
 			m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::GlassLoading] Send Loading Success Signal!"));
 
 			strFileName.Format(_T("%s_%s"), strGlassIDTemp, strGlassStepIdTemp);
-<<<<<<< HEAD
-			//업데이트시
-			bFileFind = FindRawBinFile(strFileName);
-			//bFileFind = TRUE;
-=======
+
 			//占쏙옙占쏙옙占쏙옙트占쏙옙
-			//bFileFind = FindRawBinFile(strFileName);
-			bFileFind = TRUE;
->>>>>>> feature/#3486_CF_AOI_Review_Review_History_�봽濡쒓렇�옩_�뀒�뒪�듃_諛�_�쟻�슜
+
+			//#3584 210817 LYW CF AOI Review �떆裕щ젅�씠�뀡 湲곕뒫 �젙�긽�솕 MOD START
+			if (GetSimulationMode() == FALSE)
+			{
+				bFileFind = FindRawBinFile(strFileName);
+			}
+			else
+			{
+				bFileFind = TRUE;
+			}
+			//#3584 210817 LYW CF AOI Review �떆裕щ젅�씠�뀡 湲곕뒫 �젙�긽�솕 MOD END
+			//original
+			/*bFileFind = FindRawBinFile(strFileName);*/
 
 			pDitRawClient->SetReviewStart();
 			Sleep(1000);
@@ -1114,7 +1116,7 @@
  		}
  	}
 
-	//// 190725 占쏙옙占쏙옙占� 占쏙옙청占쏙옙占쏙옙 chm ASCEND 占쏙옙 alarm
+	//// 190725 chm ASCEND alarm
 	const CRsRcpReviewInfo* pRsRcpReviewInfo = m_pSP2P->ISP2P_Recipe_GetRsRcpReviewInfo();
 
 	const CRcpSortingInfo *pSortingInfo = pRsRcpReviewInfo->GetRcpReviewSortInfo();
@@ -1131,7 +1133,7 @@
 
 	
 	
-	////占쏙옙占쏙옙占쏙옙 占쏙옙占쏙옙占쏙옙占쏙옙 占싫깍옙 190618
+	////190618
 	if(GetUseAfmHomePosition())
 	{
 	g_pLog->DisplayMessage(_T("[AFM] AFM Home Position Start!!!"));
@@ -1140,7 +1142,6 @@
 
 	}
 
-	//占쏙옙占쏙옙占쌨몌옙 커占쏙옙占� 占쏙옙占쏙옙 占쏙옙타트(占쌜띰옙 占싸듸옙) 
 	CDitGlassRawClient* pDitSharedGlassRaw = CDitGlassRawClient::GetInstance();
 	if (pDitSharedGlassRaw->isConnect() == FALSE) {
 		m_pSP2P->ISP2P_DisplayMessage(_T("[DitGlassRawClient] Shared Memory Connect Fail"));
@@ -1175,25 +1176,42 @@
 
  	// review camera stop
 	ReviewCamera_CameraControl(CameraControlStop);	
-	//AlignCamera_CameraControl(CameraControlLive);
+	AlignCamera_CameraControl(CameraControlStop);  // 210805 Align Camera Sequence 占쏙옙占쏙옙
 
- 	// send signal to plc
- 	if (nResultCode==0)
- 	{
- 		SendResultToSignalControl(PCControlSendData_LoadingResult_CPJT, SIGNAL_SEND_RESULT_SUCCESS);
- 		m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::GlassLoading] Send Loading Success Signal!"));
- 	}
- 	else
- 	{
- 		SendResultToSignalControl(PCControlSendData_LoadingResult_CPJT, SIGNAL_SEND_RESULT_FAIL);
- 		m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::GlassLoading] Send Loading FAIL Signal!"));
- 	}
+	//#3584 210817 LYW CF AOI Review �떆裕щ젅�씠�뀡 湲곕뒫 �젙�긽�솕 MOD START
+		// send signal to plc
+	if (GetSimulationMode() == FALSE)
+	{
+		if (nResultCode == 0)
+		{
+			SendResultToSignalControl(PCControlSendData_LoadingResult_CPJT, SIGNAL_SEND_RESULT_SUCCESS);
+			m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::GlassLoading] Send Loading Success Signal!"));
+		}
+		else
+		{
+			SendResultToSignalControl(PCControlSendData_LoadingResult_CPJT, SIGNAL_SEND_RESULT_FAIL);
+			m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::GlassLoading] Send Loading FAIL Signal!"));
+		}
+	}
+	//#3584 210817 LYW CF AOI Review �떆裕щ젅�씠�뀡 湲곕뒫 �젙�긽�솕 MOD END
+	//original
+//  	send signal to plc
+//  	 	if (nResultCode==0)
+//  	 	{
+//  	 		SendResultToSignalControl(PCControlSendData_LoadingResult_CPJT, SIGNAL_SEND_RESULT_SUCCESS);
+//  	 		m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::GlassLoading] Send Loading Success Signal!"));
+//  	 	}
+//  	 	else
+//  	 	{
+//  	 		SendResultToSignalControl(PCControlSendData_LoadingResult_CPJT, SIGNAL_SEND_RESULT_FAIL);
+//  	 		m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::GlassLoading] Send Loading FAIL Signal!"));
+//  	 	}
  
  	// send cell data to review processorm_pDitGlass
  	CReviewProcessor* pReviewProcessor = m_pSP2P->ISP2P_GetReviewProcessor();
  	if(pReviewProcessor == NULL) return ;	
  	pReviewProcessor->SetCellData(pGlassResult);
- 	pReviewProcessor->SetReviewCount(0);			// 占쏙옙占쏙옙 Sequence No 占십깍옙화.
+ 	pReviewProcessor->SetReviewCount(0);
 	pReviewProcessor->SetPlanReviewCount(0);
 	pReviewProcessor->SetPlanWSICount(0);
  	// Process Status Update
@@ -1215,8 +1233,16 @@
  		m_pSP2P->ISP2P_UpdateDefectFilter(pDefectFilter);
  	}	
 	
-	SendSignalToSignalControl(PCControlSendSignalIndex_Seq, PCControlSend_LoadingComplete_CPJT);
-	m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::GlassLoading] Send Loading Complete Signal!"));
+	//#3584 210817 LYW CF AOI Review �떆裕щ젅�씠�뀡 湲곕뒫 �젙�긽�솕 MOD START
+	if (GetSimulationMode() == FALSE)
+	{
+		SendSignalToSignalControl(PCControlSendSignalIndex_Seq, PCControlSend_LoadingComplete_CPJT);
+		m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::GlassLoading] Send Loading Complete Signal!"));
+	}
+	//#3584 210817 LYW CF AOI Review �떆裕щ젅�씠�뀡 湲곕뒫 �젙�긽�솕 MOD END
+	//original
+// 	SendSignalToSignalControl(PCControlSendSignalIndex_Seq, PCControlSend_LoadingComplete_CPJT);
+// 	m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::GlassLoading] Send Loading Complete Signal!"));
 
  	m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::OUT] Loading!"));
 
@@ -1232,17 +1258,37 @@
 {
  	m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::IN] AlignStart!"));
 
-	if (SendSignalToSignalControl(PCControlSendSignalIndex_Ack, PCControlSend_AlignStartAck_CPJT))
-		m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::AlignStart] Send Align Start Ack!"));
-	//Sleep(400);//占쏙옙占쏙옙占쏙옙 占쏙옙占쏙옙 占쏙옙占쏙옙占� 占쌍깍옙 chm190602
+	
+	AlignCamera_CameraControl(CameraControlLive);  // 210805 Align Camera Sequence 占쏙옙占쏙옙
+	Sleep(300);
+
+	//#3584 210817 LYW CF AOI Review �떆裕щ젅�씠�뀡 湲곕뒫 �젙�긽�솕 MOD START
+	if (GetSimulationMode() == FALSE)
+	{
+		if (SendSignalToSignalControl(PCControlSendSignalIndex_Ack, PCControlSend_AlignStartAck_CPJT))
+			m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::AlignStart] Send Align Start Ack!"));
+	}
+	//#3584 210817 LYW CF AOI Review �떆裕щ젅�씠�뀡 湲곕뒫 �젙�긽�솕 MOD END
+	//original
+// 	if (SendSignalToSignalControl(PCControlSendSignalIndex_Ack, PCControlSend_AlignStartAck_CPJT))
+// 		m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::AlignStart] Send Align Start Ack!"));
 
  	// 1. get current glass result
  	CGlassResult* pGlassResult = m_pSP2P->ISP2P_GetCurrentGlassResult();
- 	if (pGlassResult==NULL) {	return;	}
+ 	if (pGlassResult==NULL) 
+	{
+		Sleep(350);
+		AlignCamera_CameraControl(CameraControlStop);  // 210805 Align Camera Sequence 占쏙옙占쏙옙
+		return;	
+	}
  
 	const CRsRcpAlignInfo* pRsRcpAlignInfo = m_pSP2P->ISP2P_Recipe_GetRsRcpAlignInfo();
-	if(pRsRcpAlignInfo == NULL)	return;
-
+	if (pRsRcpAlignInfo == NULL)
+	{
+		Sleep(350);
+		AlignCamera_CameraControl(CameraControlStop);  // 210805 Align Camera Sequence 占쏙옙占쏙옙
+		return;
+	}
  	// 2. get align camera control	
  	CCameraControlAlign* pAlignCameraControl = m_pSP2P->ISP2P_GetAlignCameraControl();
  
@@ -1250,23 +1296,48 @@
 	if(pRsRcpAlignInfo->m_bAlignSkipMode)
 	{
 		m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::AlignStart] Align Skip Mode !!!!!!!"));
+		//#3584 210817 LYW CF AOI Review �떆裕щ젅�씠�뀡 湲곕뒫 �젙�긽�솕 MOD START
+		if (GetSimulationMode() == FALSE)
+		{
+			SendResultToSignalControl(PCControlSendData_AlignResult_CPJT, SIGNAL_SEND_RESULT_SUCCESS);
+			m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::AlignStart] Send Align SUCCESS Data!"));
+			SendSignalToSignalControl(PCControlSendSignalIndex_Seq, PCControlSend_AlignComplete_CPJT);
+			m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::AlignStart] Send Align Complete Signal!"));
+			//#3584 210817 LYW CF AOI Review �떆裕щ젅�씠�뀡 湲곕뒫 �젙�긽�솕 MOD END
+		}
+		//original
+// 		SendResultToSignalControl(PCControlSendData_AlignResult_CPJT, SIGNAL_SEND_RESULT_SUCCESS);
+// 		m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::AlignStart] Send Align SUCCESS Data!"));
+// 		SendSignalToSignalControl(PCControlSendSignalIndex_Seq, PCControlSend_AlignComplete_CPJT);
+// 		m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::AlignStart] Send Align Complete Signal!"));
 
-		SendResultToSignalControl(PCControlSendData_AlignResult_CPJT, SIGNAL_SEND_RESULT_SUCCESS);
-		m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::AlignStart] Send Align SUCCESS Data!"));
-		SendSignalToSignalControl(PCControlSendSignalIndex_Seq, PCControlSend_AlignComplete_CPJT);
-		m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::AlignStart] Send Align Complete Signal!"));
+		Sleep(350);
+		AlignCamera_CameraControl(CameraControlStop);  // 210805 Align Camera Sequence 占쏙옙占쏙옙
 	}
 	else
 	{
-		// 190710 SJB Align Camera Disconnect Check, Align Step 占쏙옙占쏙옙 占쏙옙占쏙옙 확占쏙옙占싼댐옙.
+		// 190710 SJB Align Camera Disconnect Check, Align Step
 		if(pAlignCameraControl)
 		{
 			if(pAlignCameraControl->AlignCameraDisconnectCheck() == FALSE)
 			{
-				SendResultToSignalControl(PCControlSendData_AlignResult_CPJT, SIGNAL_SEND_RESULT_FAIL);
-				m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::AlignStart] Algin Camera Disconnect!!!!"));
+				//#3584 210817 LYW CF AOI Review �떆裕щ젅�씠�뀡 湲곕뒫 �젙�긽�솕 MOD START
+				if (GetSimulationMode() == FALSE)
+				{
+					SendResultToSignalControl(PCControlSendData_AlignResult_CPJT, SIGNAL_SEND_RESULT_FAIL);
+					m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::AlignStart] Algin Camera Disconnect!!!!"));
+				}
+				//#3584 210817 LYW CF AOI Review �떆裕щ젅�씠�뀡 湲곕뒫 �젙�긽�솕 MOD END
+				//original
+// 				SendResultToSignalControl(PCControlSendData_AlignResult_CPJT, SIGNAL_SEND_RESULT_FAIL);
+// 				m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::AlignStart] Algin Camera Disconnect!!!!"));
 			}
 		}		
+		else
+		{
+			Sleep(350);
+			AlignCamera_CameraControl(CameraControlStop);  // 210805 Align Camera Sequence 占쏙옙占쏙옙
+		}
 
 		if (pGlassResult && pAlignCameraControl && pAlignCameraControl->AlignProcess())
 		{
@@ -1274,16 +1345,26 @@
 		}
 		else
 		{
-			//占쏙옙占쏙옙占쌩듸옙
 			Sleep(1000);
-			//TEST 占쏙옙占�
 			{
-				SendResultToSignalControl(PCControlSendData_AlignResult_CPJT, SIGNAL_SEND_RESULT_SUCCESS);
-				m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::AlignStart] Send Align SUCCESS Data!"));
-			SendSignalToSignalControl(PCControlSendSignalIndex_Seq, PCControlSend_AlignComplete_CPJT);
-			m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::AlignStart] Send Align Complete Signal!"));
-		}
+				//#3584 210817 LYW CF AOI Review �떆裕щ젅�씠�뀡 湲곕뒫 �젙�긽�솕 MOD START
+				if (GetSimulationMode() == FALSE)
+				{
+					SendResultToSignalControl(PCControlSendData_AlignResult_CPJT, SIGNAL_SEND_RESULT_SUCCESS);
+					m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::AlignStart] Send Align SUCCESS Data!"));
+					SendSignalToSignalControl(PCControlSendSignalIndex_Seq, PCControlSend_AlignComplete_CPJT);
+					m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::AlignStart] Send Align Complete Signal!"));
+				}
+				//#3584 210817 LYW CF AOI Review �떆裕щ젅�씠�뀡 湲곕뒫 �젙�긽�솕 MOD END
+				//original
+// 				SendResultToSignalControl(PCControlSendData_AlignResult_CPJT, SIGNAL_SEND_RESULT_SUCCESS);
+// 				m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::AlignStart] Send Align SUCCESS Data!"));
+// 				SendSignalToSignalControl(PCControlSendSignalIndex_Seq, PCControlSend_AlignComplete_CPJT);
+// 				m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::AlignStart] Send Align Complete Signal!"));
+			}
 
+			Sleep(350);
+			AlignCamera_CameraControl(CameraControlStop);  // 210805 Align Camera Sequence 占쏙옙占쏙옙
 
 			//占쌍쇽옙 풀占쏙옙
 			// 4. send align fail signal to plc
@@ -1291,7 +1372,7 @@
 			//m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::AlignStart] Send Align Fail Data!"));
 			//SendSignalToSignalControl(PCControlSendSignalIndex_Seq, PCControlSend_AlignComplete_CPJT);
 			//m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::AlignStart] Send Align Complete Signal!"));
-	}
+		}
 	}
 
 
@@ -1313,21 +1394,36 @@
 	m_pSP2P->ISP2P_GetSignalControl()->WriteData(_T("17110"), sizeof(pDitRawClient->GetGlassData()->m_strGlassJudge), pDitRawClient->GetGlassData()->m_strGlassJudge);
 	m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::IN] ReadRawFile!"));
 
-	if (SendSignalToSignalControl(PCControlSendSignalIndex_Ack, PCControlSend_ReadRawFileAck_CPJT))
-		m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::ReadRawFile] Send Read Raw File Ack!"));
+	//#3584 210817 LYW CF AOI Review �떆裕щ젅�씠�뀡 湲곕뒫 �젙�긽�솕 MOD START
+	if (GetSimulationMode() == FALSE)
+	{
+		if (SendSignalToSignalControl(PCControlSendSignalIndex_Ack, PCControlSend_ReadRawFileAck_CPJT))
+			m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::ReadRawFile] Send Read Raw File Ack!"));
+	}
+	//#3584 210817 LYW CF AOI Review �떆裕щ젅�씠�뀡 湲곕뒫 �젙�긽�솕 MOD END
+	//original
+// 	if (SendSignalToSignalControl(PCControlSendSignalIndex_Ack, PCControlSend_ReadRawFileAck_CPJT))
+// 		m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::ReadRawFile] Send Read Raw File Ack!"));
 
  	if (bFileFind == FALSE)
 	{
-		SendResultToSignalControl(PCControlSendData_ReviewResult_CPJT, SIGNAL_SEND_RESULT_FAIL);
-		m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::ReadRawFile] 占쏙옙占쏙옙占쏙옙占� 찾占쏙옙 占쏙옙占쏙옙"));
+		//#3584 210817 LYW CF AOI Review �떆裕щ젅�씠�뀡 湲곕뒫 �젙�긽�솕 MOD START
+		if (GetSimulationMode() == FALSE)
+		{
+			SendResultToSignalControl(PCControlSendData_ReviewResult_CPJT, SIGNAL_SEND_RESULT_FAIL);
+			m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::ReadRawFile] Find Raw File Fail"));
+		}
+		//#3584 210817 LYW CF AOI Review �떆裕щ젅�씠�뀡 湲곕뒫 �젙�긽�솕 MOD END
+		//original
+// 		SendResultToSignalControl(PCControlSendData_ReviewResult_CPJT, SIGNAL_SEND_RESULT_FAIL);
+// 		m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::ReadRawFile] Find Raw File Fail"));
 		return;
 	}	
 
 	// get current glass result
 	CGlassResult* pGlassResult = m_pSP2P->ISP2P_GetCurrentGlassResult();
 	if (pGlassResult==NULL) return;
-	
-	//占쏙옙占쏙옙占쌨몌옙 커占쏙옙占� 占쏙옙占쏙옙 占쏙옙타트(占쌜띰옙 占싸듸옙) 
+	 
 	CDitGlassRawClient* pDitSharedGlassRaw = CDitGlassRawClient::GetInstance();
 	if(pDitSharedGlassRaw->isConnect() == FALSE)				m_pSP2P->ISP2P_DisplayMessage(_T("[DitGlassRawClient] Shared Memory Connect Fail"));
 
@@ -1354,20 +1450,26 @@
 		int nTotalPlanCount = CalculatePlanData(pGlassResult);
 		m_pSP2P->ISP2P_DisplayMessage(_T("[Read Raw File] Review All Plan Total Count : %d"), nTotalPlanCount);
 
-		//占쏙옙占쏙옙占쌩듸옙
 		Sleep(1000);
 		// send review ready
-		SendResultToSignalControl(PCControlSendData_ReviewResult_CPJT, SIGNAL_SEND_RESULT_SUCCESS);
-		SendSignalToSignalControl(PCControlSendSignalIndex_Seq, PCControlSend_ReviewReady_CPJT);
-		m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::ReadRawFile] Send Review Ready Signal!"));
+		//#3584 210817 LYW CF AOI Review �떆裕щ젅�씠�뀡 湲곕뒫 �젙�긽�솕 MOD START
+		if (GetSimulationMode() == FALSE)
+		{
+			SendResultToSignalControl(PCControlSendData_ReviewResult_CPJT, SIGNAL_SEND_RESULT_SUCCESS);
+			SendSignalToSignalControl(PCControlSendSignalIndex_Seq, PCControlSend_ReviewReady_CPJT);
+			m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::ReadRawFile] Send Review Ready Signal!"));
+		}
+		//#3584 210817 LYW CF AOI Review �떆裕щ젅�씠�뀡 湲곕뒫 �젙�긽�솕 MOD END
+		//original
+// 		SendResultToSignalControl(PCControlSendData_ReviewResult_CPJT, SIGNAL_SEND_RESULT_SUCCESS);
+// 		SendSignalToSignalControl(PCControlSendSignalIndex_Seq, PCControlSend_ReviewReady_CPJT);
+// 		m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::ReadRawFile] Send Review Ready Signal!"));
 	}
 	else
 	{
 		processTimer.End();
 		m_pSP2P->ISP2P_DisplayMessage(_T("[ReadRawFile] AOI Result File Read Fail![%.3f ms]"), processTimer.GetDurationMilliSecond());
 
-
-		//占쌓쏙옙트 占쏙옙占�
 		//{
 		//			// send review ready
 		//	SendResultToSignalControl(PCControlSendData_ReviewResult_CPJT, SIGNAL_SEND_RESULT_SUCCESS);
@@ -1375,7 +1477,6 @@
 		//			m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::ReadRawFile] Send Review Ready Signal!"));
 		//}
 
-		//占쌍쇽옙 占쏙옙占쏙옙
 		int nCurPlanIndex = 0;
 		CRsRcpReviewInfo* pRsRcpReviewInfo = m_pSP2P->ISP2P_Recipe_GetRsRcpReviewInfo();
 		if(pRsRcpReviewInfo)
@@ -1390,15 +1491,21 @@
 					m_pSP2P->ISP2P_DisplayMessage(_T("[Read Raw File] Review All Plan Total Count : %d"), nTotalPlanCount);
 
 					// send review ready
-					SendSignalToSignalControl(PCControlSendSignalIndex_Seq, PCControlSend_ReviewReady_CPJT);
-					m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::ReadRawFile] Send Review Ready Signal!"));
+					//#3584 210817 LYW CF AOI Review �떆裕щ젅�씠�뀡 湲곕뒫 �젙�긽�솕 MOD START
+					if (GetSimulationMode() == FALSE)
+					{
+						SendSignalToSignalControl(PCControlSendSignalIndex_Seq, PCControlSend_ReviewReady_CPJT);
+						m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::ReadRawFile] Send Review Ready Signal!"));
+					}
+					//#3584 210817 LYW CF AOI Review �떆裕щ젅�씠�뀡 湲곕뒫 �젙�긽�솕 MOD END
+					//original
+// 					SendSignalToSignalControl(PCControlSendSignalIndex_Seq, PCControlSend_ReviewReady_CPJT);
+// 					m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::ReadRawFile] Send Review Ready Signal!"));
 				}
 			}
 		}
 	}
 
-	//// [2017:5:24]-[WEZASW] : Review Image Upload Dir 占쏙옙占쏙옙.(FTPUploader占쏙옙占쏙옙 占쌘듸옙 占쏙옙占쏙옙 占실댐옙占쏙옙 占쏙옙占쏙옙 占쏙옙占쏙옙占� 占쏙옙占쏙옙)
-	//// '占쌥븝옙占싯삼옙'占쏙옙 FTPUploader占쏙옙占쏙옙 占쏙옙占싸듸옙 占쏙옙 占쏙옙占쏙옙 占쏙옙占쏙옙占쏙옙 PCControl Glass Unloading 占쏙옙 占쏙옙占� Loading占쏙옙 Review占쏙옙占쏙옙占쏙옙 占쏙옙占싸듸옙 占쏙옙占�(GlassID) 占쏙옙占쏙옙 占쏙옙占쏙옙 占쏙옙占쏙옙
 	const CNetworkInfo *pNetworkInfo = m_pSP2P->ISP2P_System_GetNetworkInfo();
 	CString strPath = _T("");
 	//if(pNetworkInfo && pNetworkInfo->m_strUploadImagePath.IsEmpty() == FALSE)
@@ -1412,8 +1519,6 @@
 	CFileFind Uploadfile, RTMSUploadPath;
 	if (CDitGlassRawClient::GetInstance()->GetGlassData() == NULL) return;
 
-	
-	//占쏙옙占싸듸옙 占쏙옙占쏙옙占쏙옙 占쏙옙占쏙옙占쏙옙 占쏙옙占쏙옙 占쏙옙占쏙옙占쏙옙 占쌕쏙옙 占쏙옙占싸듸옙 占쏙옙占� Set 20190917chm
 	if(Uploadfile.FindFile(strPath)==FALSE)
 	{
 		CTime tmServerLoadingTime = CDitGlassRawClient::GetInstance()->GetGlassData()->m_tmGlassLoading;
@@ -1421,10 +1526,6 @@
 		CreateDirectory(strPath, NULL);
 		pReviewProcessor->SetUploadImagePath(strPath);
 
-
-		
-
-		//taek 210126 rtms 占쏙옙占쏙옙占� 占싱뱄옙占쏙옙 占쏙옙占쏙옙 占쏙옙占쏙옙 
 		CreateDirectory(pReviewProcessor->GetRTMSUploadImagePath(),NULL);
 	}
 
@@ -1441,9 +1542,16 @@
 	SetLastPointCheck(FALSE);
 	m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::IN] %d Tick Count"), dwTime);
 
-
-	if (SendSignalToSignalControl(PCControlSendSignalIndex_Ack, PCControlSend_ReviewStartAck_CPJT))
-		m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::ReviewStart] Send Review Start Ack!"));
+	//#3584 210817 LYW CF AOI Review �떆裕щ젅�씠�뀡 湲곕뒫 �젙�긽�솕 MOD START
+	if (GetSimulationMode() == FALSE)
+	{
+		if (SendSignalToSignalControl(PCControlSendSignalIndex_Ack, PCControlSend_ReviewStartAck_CPJT))
+			m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::ReviewStart] Send Review Start Ack!"));
+	}
+	//#3584 210817 LYW CF AOI Review �떆裕щ젅�씠�뀡 湲곕뒫 �젙�긽�솕 MOD END
+	//original
+// 	if (SendSignalToSignalControl(PCControlSendSignalIndex_Ack, PCControlSend_ReviewStartAck_CPJT))
+// 		m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::ReviewStart] Send Review Start Ack!"));
 
 	const CRsRcpAlignInfo* pRsRcpAlignInfo = m_pSP2P->ISP2P_Recipe_GetRsRcpAlignInfo();
 	if(pRsRcpAlignInfo == NULL)	return;
@@ -1470,10 +1578,10 @@
 	//			_grmCellData* pCellData = pDitRawClient->GetCellData(0);
 	//			if(pCellData) 
 	//			{
-	//			//	pCellData->m_nTotalPitchData[0] = int(pTotapPithMeasure->GetTotalPitchBD() * 1000); // 占쏙옙占쏙옙, 占쌜억옙占쏙옙 占쏙옙占쏙옙 占쏙옙占쏙옙
-	//			//	pCellData->m_nTotalPitchData[1] = int(pTotapPithMeasure->GetTotalPitchAC() * 1000); // 占쏙옙占쏙옙, 占쌜억옙占쏙옙 占쏙옙占쏙옙 占싣뤄옙占쏙옙
-	//			//	pCellData->m_nTotalPitchData[2] = int(pTotapPithMeasure->GetTotalPitchAB() * 1000); // 占쏙옙占쏙옙, 占쌜억옙占쏙옙 占쏙옙占쏙옙 占쏙옙占쏙옙
-	//			//	pCellData->m_nTotalPitchData[3] = int(pTotapPithMeasure->GetTotalPitchCD() * 1000); // 占쏙옙占쏙옙, 占쌜억옙占쏙옙 占쏙옙占쏙옙 占쏙옙占쏙옙占쏙옙
+	//			//	pCellData->m_nTotalPitchData[0] = int(pTotapPithMeasure->GetTotalPitchBD() * 1000); 
+	//			//	pCellData->m_nTotalPitchData[1] = int(pTotapPithMeasure->GetTotalPitchAC() * 1000); 
+	//			//	pCellData->m_nTotalPitchData[2] = int(pTotapPithMeasure->GetTotalPitchAB() * 1000); 
+	//			//	pCellData->m_nTotalPitchData[3] = int(pTotapPithMeasure->GetTotalPitchCD() * 1000); 
 	//			}
 	//		}
 	//	}
@@ -1481,7 +1589,6 @@
 	//	{
 	//		m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor] TotalPitchMeasure Result Fail!"));
 
-	//		// 190711 SJB, TotalPitchMeasure Fail占시울옙 占쌕뤄옙 Motor占쏙옙 占쏙옙占쏙옙占� 占쏙옙占쏙옙占쏙옙 占쏙옙占쌕댐옙 Motion Enable 占쏙옙호占쏙옙 확占쏙옙占쏙옙占쏙옙
 	//		
 	//		if(!pTotapPithMeasure->GetMotorEnable())
 	//		{
@@ -1507,15 +1614,23 @@
 	if(FirstReviewPlanStart() <= 0)
 	{
 		//Sleep(1000);
-		SendResultToSignalControl(PCControlSendData_ReviewComplete_CPJT, SIGNAL_SEND_RESULT_SUCCESS);
-		SendSignalToSignalControl(PCControlSendSignalIndex_Seq, PCControlSend_ReviewComplete_CPJT);
-		m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::ReviewStart] Send Review Success Signal!"));
+		//#3584 210817 LYW CF AOI Review �떆裕щ젅�씠�뀡 湲곕뒫 �젙�긽�솕 MOD START
+		if (GetSimulationMode() == FALSE)
+		{
+			SendResultToSignalControl(PCControlSendData_ReviewComplete_CPJT, SIGNAL_SEND_RESULT_SUCCESS);
+			SendSignalToSignalControl(PCControlSendSignalIndex_Seq, PCControlSend_ReviewComplete_CPJT);
+			m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::ReviewStart] Send Review Success Signal!"));
+		}
+		//#3584 210817 LYW CF AOI Review �떆裕щ젅�씠�뀡 湲곕뒫 �젙�긽�솕 MOD END
+		//original
+// 		SendResultToSignalControl(PCControlSendData_ReviewComplete_CPJT, SIGNAL_SEND_RESULT_SUCCESS);
+// 		SendSignalToSignalControl(PCControlSendSignalIndex_Seq, PCControlSend_ReviewComplete_CPJT);
+// 		m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::ReviewStart] Send Review Success Signal!"));
 	}
 	else
 	{
-		//占쏙옙占쏙옙占쌩듸옙
+
 		//Sleep(1000);
-		//Test占쏙옙占�
 		//SendResultToSignalControl(PCControlSendData_ReviewComplete_CPJT, SIGNAL_SEND_RESULT_SUCCESS);
 		//SendSignalToSignalControl(PCControlSendSignalIndex_Seq, PCControlSend_ReviewComplete_CPJT);
 		//m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::ReviewStart] Send Review Success Signal!"));
@@ -1533,8 +1648,16 @@
 {
 	m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::IN] ReviewEnd!"));
 
-	if (SendSignalToSignalControl(PCControlSendSignalIndex_Ack, PCControlSend_ReviewEndAck_CPJT))
-		m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::ReviewEnd] Send Review End Ack!"));
+	//#3584 210817 LYW CF AOI Review �떆裕щ젅�씠�뀡 湲곕뒫 �젙�긽�솕 MOD START
+	if (GetSimulationMode() == FALSE)
+	{
+		if (SendSignalToSignalControl(PCControlSendSignalIndex_Ack, PCControlSend_ReviewEndAck_CPJT))
+			m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::ReviewEnd] Send Review End Ack!"));
+	}
+	//#3584 210817 LYW CF AOI Review �떆裕щ젅�씠�뀡 湲곕뒫 �젙�긽�솕 MOD END
+	//original
+// 	if (SendSignalToSignalControl(PCControlSendSignalIndex_Ack, PCControlSend_ReviewEndAck_CPJT))
+// 		m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::ReviewEnd] Send Review End Ack!"));
 
 	CDitGlassRawClient* m_pDitGlassRaw = CDitGlassRawClient::GetInstance();
 	if (m_pSP2P->ISP2P_GetWSIControl(0)!=NULL)
@@ -1555,16 +1678,22 @@
 	}
 	
 	m_pDitGlassRaw->GetGlassData()->m_nReviewNum = m_pSP2P->ISP2P_GetReviewProcessor()->GetPlanReviewCount();
-    //SendDVDataToSignalControl();// 占싫억옙占쏙옙
-
-	//OverTime 占쌩삼옙占쏙옙 占쏙옙占쏘에占쏙옙 END ACK占쏙옙 占쏙옙摸占쏙옙째占� 占싣니띰옙 占쏙옙 Conplete占쏙옙 占쏙옙摸占쏙옙占�.
-	//占쏙옙 ... 占쏙옙占쏙옙  占쏙옙占쏙옙占싸듸옙占싹댐옙 占쌩곤옙 
+    //SendDVDataToSignalControl(); 
 
 	if (GetLastPointCheck() == FALSE)
 	{
-		SendResultToSignalControl(PCControlSendData_ReviewResult_CPJT, SIGNAL_SEND_RESULT_SUCCESS);
-		SendSignalToSignalControl(PCControlSendSignalIndex_Seq, PCControlSend_ReviewComplete_CPJT);
-		m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::ReviewStart] Send Review Success Signal!"));
+		//#3584 210817 LYW CF AOI Review �떆裕щ젅�씠�뀡 湲곕뒫 �젙�긽�솕 MOD START
+		if (GetSimulationMode() == FALSE)
+		{
+			SendResultToSignalControl(PCControlSendData_ReviewResult_CPJT, SIGNAL_SEND_RESULT_SUCCESS);
+			SendSignalToSignalControl(PCControlSendSignalIndex_Seq, PCControlSend_ReviewComplete_CPJT);
+			m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::ReviewStart] Send Review Success Signal!"));
+		}
+		//#3584 210817 LYW CF AOI Review �떆裕щ젅�씠�뀡 湲곕뒫 �젙�긽�솕 MOD END
+		//original
+// 		SendResultToSignalControl(PCControlSendData_ReviewResult_CPJT, SIGNAL_SEND_RESULT_SUCCESS);
+// 		SendSignalToSignalControl(PCControlSendSignalIndex_Seq, PCControlSend_ReviewComplete_CPJT);
+// 		m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::ReviewStart] Send Review Success Signal!"));
 	}
 
 	CGlassResult* pGlassResult = m_pSP2P->ISP2P_GetCurrentGlassResult();
@@ -1585,10 +1714,8 @@
 		m_pSP2P->ISP2P_GetWSIControl(0)->SendWsiAfmSafePosMove();
 		m_pSP2P->ISP2P_GetWSIControl(1)->SendWsiAfmSafePosMove();
 	}
-	// 占쏙옙占쏙옙占쏙옙占� 占쏙옙占쏙옙占쏙옙 Review占쏙옙占쏙옙 占쏙옙占쏙옙 占쏙옙占쏙옙
 	if(m_pDitGlassRaw->isConnect()==FALSE)		WriteRawData(pGlassResult);
 	
-	//占쏙옙占쏙옙커占쏙옙 占싯띰옙 send 20190819chm
 	if(pGlassResult->m_nDeFocusCount >0) 
 	{
 		SendSignalToSignalControl(PCControlSendSignalIndex_State,PCControlSend_Defoucs,1000);
@@ -1598,8 +1725,8 @@
 		CString strTime = _T("");
 		strTime.Format(_T("%04d-%02d-%02d %02d:%02d:%02d"), time.GetYear(), time.GetMonth(), time.GetDay(), time.GetHour(), time.GetMinute(), time.GetSecond());
 
-		CDlgDefocusList::GetInstance()->SetDefocusTotalCount(pGlassResult->m_nDeFocusCount);//占쏙옙탈 카占쏙옙트 Add 
-		CDlgDefocusList::GetInstance()->SetDefocusData(strTime,pGlassResult->m_strGlassID,pGlassResult->m_nDeFocusCount);//ui 占쌩곤옙占쏙옙 占쏙옙占쏙옙
+		CDlgDefocusList::GetInstance()->SetDefocusTotalCount(pGlassResult->m_nDeFocusCount);
+		CDlgDefocusList::GetInstance()->SetDefocusData(strTime,pGlassResult->m_strGlassID,pGlassResult->m_nDeFocusCount);
 
 	}
 
@@ -1613,26 +1740,34 @@
 	g_pLog->DisplayMessage(_T("History Button Enable"));
 	m_pSP2P->ISP2P_GetDiagnosisHistory2();
 
-	/*int nModuleCount = m_pSP2P->ISP2P_GetModuleStatusCount(); //0503 占쏙옙占쏙옙 End占쏙옙 占쏙옙占쏙옙占� 0占쏙옙占쏙옙 占십깍옙화
+	/*int nModuleCount = m_pSP2P->ISP2P_GetModuleStatusCount(); 
 	for (int nModuleIdx = 0; nModuleIdx < nModuleCount; nModuleIdx++)
 	{
 		{
 			ReviewLight_SetLightLevel(nModuleIdx, 0);
-			g_pLog->DisplayMessage(_T("Module[%d] LightLevel 占십깍옙화"), nModuleIdx);
+			g_pLog->DisplayMessage(_T("Module[%d] LightLevel"), nModuleIdx);
 		}
 
 	}*/
 
-	//5. PCControl 占쏙옙호 占쏙옙占쏙옙占쏙옙트
+	//5. PCControl 
 	if (pGlassResult)
 	{
 		m_pSP2P->ISP2P_UpdateProcessStatus(GetProcessStatus(), pGlassResult);
 		g_pLog->DisplayMessage(_T("PCControl Update Signal"));
 	}
 
-	SendResultToSignalControl(PCControlSendData_ReviewResultFileCreateComplete_CPJT, SIGNAL_SEND_RESULT_SUCCESS);
-	SendSignalToSignalControl(PCControlSendSignalIndex_Seq, PCControlSend_ResultDataComplete_CPJT);
-	m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::ReviewEnd] Send ResultData Complete Signal!"));
+	//#3584 210817 LYW CF AOI Review �떆裕щ젅�씠�뀡 湲곕뒫 �젙�긽�솕 MOD START
+	if (GetSimulationMode() == FALSE)
+	{
+		SendResultToSignalControl(PCControlSendData_ReviewResultFileCreateComplete_CPJT, SIGNAL_SEND_RESULT_SUCCESS);
+		SendSignalToSignalControl(PCControlSendSignalIndex_Seq, PCControlSend_ResultDataComplete_CPJT);
+		m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::ReviewEnd] Send ResultData Complete Signal!"));
+	}
+	//#3584 210817 LYW CF AOI Review �떆裕щ젅�씠�뀡 湲곕뒫 �젙�긽�솕 MOD END
+// 	SendResultToSignalControl(PCControlSendData_ReviewResultFileCreateComplete_CPJT, SIGNAL_SEND_RESULT_SUCCESS);
+// 	SendSignalToSignalControl(PCControlSendSignalIndex_Seq, PCControlSend_ResultDataComplete_CPJT);
+// 	m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::ReviewEnd] Send ResultData Complete Signal!"));
 
 	m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::OUT] ReviewEnd!"));
 }
@@ -1640,9 +1775,16 @@
 void CSequenceProcessor_CPJT::Process_ReviewUnloading()
 {
 	m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::IN] Review Unloading!"));
-	
-	if (SendSignalToSignalControl(PCControlSendSignalIndex_Ack, PCControlSend_ReviewUnloadingAck_CPJT))
-		m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::ReviewStart] Send Review Unloading Ack!"));
+	//#3584 210817 LYW CF AOI Review �떆裕щ젅�씠�뀡 湲곕뒫 �젙�긽�솕 MOD START
+	if (GetSimulationMode() == FALSE)
+	{
+		if (SendSignalToSignalControl(PCControlSendSignalIndex_Ack, PCControlSend_ReviewUnloadingAck_CPJT))
+			m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::ReviewStart] Send Review Unloading Ack!"));
+	}
+	//original
+	//#3584 210817 LYW CF AOI Review �떆裕щ젅�씠�뀡 湲곕뒫 �젙�긽�솕 MOD END
+// 	if (SendSignalToSignalControl(PCControlSendSignalIndex_Ack, PCControlSend_ReviewUnloadingAck_CPJT))
+// 		m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::ReviewStart] Send Review Unloading Ack!"));
 	
 }
 
@@ -1665,8 +1807,8 @@
 
 	CString strCode = _T("");
 
-	int nDefectCount = pRawData->GetGlassData()->m_nDefectNum; // 占쏙옙占썲갯占쏙옙
-	int nJudgeCount = pRcpReviewInfo->GetRcpZoneFilterInfoCount();// 占쏙옙占쏙옙 占쏙옙占쏙옙
+	int nDefectCount = pRawData->GetGlassData()->m_nDefectNum; 
+	int nJudgeCount = pRcpReviewInfo->GetRcpZoneFilterInfoCount();
 	int nFilterType = 0;
 	int nJudgeType = 0;
 	int nZoneNumber = 0;
@@ -1680,7 +1822,7 @@
 	int nJudgeCellOKCount = 0;
 	int nPixelSize = 0;
 	int nPixelFilterSize = 0;
-	//占쏙옙占쏙옙 占쏙옙占쏙옙占쏙옙
+	
 	//1 wsi, 3 CS, 4 R, 5 G, 6 B
 	//pRawData->GetDefectData(nDefectIdx)->m_ReviewDefect.m_fWsi_ResultData[1];//Defect
 	//pRawData->GetDefectData(nDefectIdx)->m_ReviewDefect.m_fWsi_ResultData[3];//cs
@@ -1694,10 +1836,10 @@
 		{
 
 
-#pragma region 占쏙옙占쏙옙占� fail
+#pragma region Align fail
 			if (m_pSP2P->ISP2P_GetCurrentGlassResult()->GetAlignResult()->nResultCode != Align_Success)
 			{
-				m_pSP2P->ISP2P_DisplayMessage(_T("[TEST Process::ReviewEnd] 占쏙옙占쏙옙占� 占쏙옙占쏙옙 WSI 占쏙옙占쏙옙 占쏙옙占쏙옙占쏙옙 占쏙옙占쏙옙 占쏙옙占쏙옙"));
+				m_pSP2P->ISP2P_DisplayMessage(_T("[TEST Process::ReviewEnd] Align Fail WSI Rejudge Cancel"));
 				break;
 			}
 #pragma endregion
@@ -1735,7 +1877,7 @@
 			
 			if (nPixelFilterSize <= nPixelSize && nPixelFilterSize != 0)
 			{
-				m_pSP2P->ISP2P_DisplayMessage(_T("[ReviewEnd] 占쏙옙占쏙옙占쏙옙 占쏙옙占싶몌옙 Pixel Size[%d] nPixelFilterSize [%d]"), nPixelSize,nPixelFilterSize);
+				m_pSP2P->ISP2P_DisplayMessage(_T("[ReviewEnd] Size filtering Pixel Size[%d] nPixelFilterSize [%d]"), nPixelSize,nPixelFilterSize);
 				continue;	
 			}
 #pragma endregion
@@ -1745,13 +1887,13 @@
 			for (int nJudgeindex = 0; nJudgeindex < nJudgeCount; nJudgeindex++)
 			{
 				//nZoneType = GetZoneType();
-				dJudgeHight = pRcpReviewInfo->GetRcpZoneFilteringInfo(nJudgeindex)->GetJudgeHeight(); //占쏙옙占쏙옙
+				dJudgeHight = pRcpReviewInfo->GetRcpZoneFilteringInfo(nJudgeindex)->GetJudgeHeight();
 				nFilterType = pRcpReviewInfo->GetRcpZoneFilteringInfo(nJudgeindex)->m_nFilterType; //ZONE
 				nJudge = pRcpReviewInfo->GetRcpZoneFilteringInfo(nJudgeindex)->m_nFilterJudge; //OK TR
 
 				//nZoneNumber = pRcpReviewInfo->GetRcpZoneInfo(nFilterType)->m_vecZoneNumber[0];
 				
-				if (pRawData->GetDefectData(nDefectIdx)->m_ReviewDefect.m_nWsi_Type == 2) // 210330 kyh占쏙옙占쏙옙
+				if (pRawData->GetDefectData(nDefectIdx)->m_ReviewDefect.m_nWsi_Type == 2) // 210330 kyh
 				{
 
 					BOOL isZoneValue = FALSE;
@@ -1764,7 +1906,7 @@
 						}
 						else
 						{
-							m_pSP2P->ISP2P_DisplayMessage(_T("[WSIZoneCheck] Zone[%d], DefectIndex[%d]"), nZoneNumber, pRawData->GetDefectData(nDefectIdx)->m_nDefectIdx); //210330 kyh 占싸깍옙 占쌩곤옙
+							m_pSP2P->ISP2P_DisplayMessage(_T("[WSIZoneCheck] Zone[%d], DefectIndex[%d]"), nZoneNumber, pRawData->GetDefectData(nDefectIdx)->m_nDefectIdx); //210330 kyh 
 							isZoneValue = TRUE;
 							//break;
 
@@ -1773,7 +1915,7 @@
 
 					if (isZoneValue == FALSE)
 					{
-						m_pSP2P->ISP2P_DisplayMessage(_T("[WSIZoneCheck] NoFail DefectIndex[%d]"), pRawData->GetDefectData(nDefectIdx)->m_nDefectIdx); //210330 kyh 占싸깍옙 占쌩곤옙
+						m_pSP2P->ISP2P_DisplayMessage(_T("[WSIZoneCheck] NoFail DefectIndex[%d]"), pRawData->GetDefectData(nDefectIdx)->m_nDefectIdx); //210330 kyh
 						continue;
 					}
 
@@ -1823,13 +1965,13 @@
 						}
 
 					}
-					else if (fWsiData<=0) // 0占쏙옙占쏙옙 占쏙옙占쏙옙 占쏙옙占쏙옙占쏙옙 占쏙옙占쏙옙占쏙옙 占쏙옙占싼댐옙.
+					else if (fWsiData<=0) 
 					{
-						m_pSP2P->ISP2P_DisplayMessage(_T("[TEST Process::ReviewEnd] WSI TYPE[%d] WSI 占쏙옙占쏙옙[%0.3lf] <= 0 占쏙옙占쏙옙 占쏙옙占쏙옙 占쏙옙占쏙옙"), nJudgeType, fWsiData);
+						m_pSP2P->ISP2P_DisplayMessage(_T("[TEST Process::ReviewEnd] WSI TYPE[%d] WSI Height[%0.3lf] <= 0 Cancel Rejudge"), nJudgeType, fWsiData);
 					}
 					else
 					{
-						//20210419 TR 占쏙옙占쏙옙占쏙옙占쏙옙 Judge 占쏙옙占쏙옙 占쏙옙占쏙옙占쏙옙占� OK 占쏙옙占쏙옙 
+						//20210419 TR
 						//if (nJudge == 1)//TR -> OK
 						//{
 							if (pRawData->GetDefectData(nDefectIdx)->m_DefectJudgement == DEFECT_JUDGE_CPJT_OK || pRawData->GetDefectData(nDefectIdx)->m_DefectJudgement == DEFECT_JUDGE_CPJT_Unknown)
@@ -1880,7 +2022,7 @@
 
 
 				}
-				else //WSI TYPE 占쏙옙 占싣니몌옙 
+				else //WSI TYPE 
 				{
 					continue;
 				}
@@ -1894,13 +2036,13 @@
 			for (int nJudgeindex = 0; nJudgeindex < nJudgeCount; nJudgeindex++)
 			{
 				//nZoneType = GetZoneType();
-				dJudgeHight = pRcpReviewInfo->GetRcpZoneFilteringInfo_PR(nJudgeindex)->GetJudgeHeight(); //占쏙옙占쏙옙
+				dJudgeHight = pRcpReviewInfo->GetRcpZoneFilteringInfo_PR(nJudgeindex)->GetJudgeHeight();
 				nFilterType = pRcpReviewInfo->GetRcpZoneFilteringInfo_PR(nJudgeindex)->m_nFilterType; //ZONE
 				nJudge = pRcpReviewInfo->GetRcpZoneFilteringInfo_PR(nJudgeindex)->m_nFilterJudge; //OK TR
 
 				//nZoneNumber = pRcpReviewInfo->GetRcpZoneInfo(nFilterType)->m_vecZoneNumber[0];
 
-				if (pRawData->GetDefectData(nDefectIdx)->m_ReviewDefect.m_nWsi_Type == 2) // 210330 kyh占쏙옙占쏙옙
+				if (pRawData->GetDefectData(nDefectIdx)->m_ReviewDefect.m_nWsi_Type == 2) // 210330
 				{
 
 					BOOL isZoneValue = FALSE;
@@ -1913,7 +2055,7 @@
 						}
 						else
 						{
-							m_pSP2P->ISP2P_DisplayMessage(_T("[WSIZoneCheck] Zone[%d], DefectIndex[%d]"), nZoneNumber, pRawData->GetDefectData(nDefectIdx)->m_nDefectIdx); //210330 kyh 占싸깍옙 占쌩곤옙
+							m_pSP2P->ISP2P_DisplayMessage(_T("[WSIZoneCheck] Zone[%d], DefectIndex[%d]"), nZoneNumber, pRawData->GetDefectData(nDefectIdx)->m_nDefectIdx); //210330 kyh 
 							isZoneValue = TRUE;
 							//break;
 
@@ -1922,7 +2064,7 @@
 
 					if (isZoneValue == FALSE)
 					{
-						m_pSP2P->ISP2P_DisplayMessage(_T("[WSIZoneCheck] NoFail DefectIndex[%d]"), pRawData->GetDefectData(nDefectIdx)->m_nDefectIdx); //210330 kyh 占싸깍옙 占쌩곤옙
+						m_pSP2P->ISP2P_DisplayMessage(_T("[WSIZoneCheck] NoFail DefectIndex[%d]"), pRawData->GetDefectData(nDefectIdx)->m_nDefectIdx); //210330 kyh 
 						continue;
 					}
 
@@ -1976,7 +2118,6 @@
 					}
 					else
 					{
-						//20210419 TR 占쏙옙占쏙옙占쏙옙占쏙옙 Judge 占쏙옙占쏙옙 占쏙옙占쏙옙占쏙옙占� OK 占쏙옙占쏙옙 
 						//if (nJudge == 1)//TR -> OK
 						//{
 						if (pRawData->GetDefectData(nDefectIdx)->m_DefectJudgement == DEFECT_JUDGE_CPJT_OK || pRawData->GetDefectData(nDefectIdx)->m_DefectJudgement == DEFECT_JUDGE_CPJT_Unknown)
@@ -2028,7 +2169,7 @@
 
 
 				}
-				else //WSI TYPE 占쏙옙 占싣니몌옙 
+				else //WSI TYPE  
 				{
 					continue;
 				}
@@ -2043,7 +2184,7 @@
 				
 				strCode =pRcpReviewInfo->GetRcpZoneFilteringInfo_CODE(nJudgeindex)->m_FilterCode;
 
-				if (pRawData->GetDefectData(nDefectIdx)->m_ReviewDefect.m_nWsi_Type == 2) // 210330 kyh占쏙옙占쏙옙
+				if (pRawData->GetDefectData(nDefectIdx)->m_ReviewDefect.m_nWsi_Type == 2) // 210330
 				{
 
 					nJudgeType = ReJugdeWSIType(nFilterType);
@@ -2096,7 +2237,7 @@
 						m_pSP2P->ISP2P_DisplayMessage(_T("[TEST Process::ReviewEnd] CODE JUDGE WSI TYPE[%d] Defect CODE [%s] != [%s]"), nJudgeType, strCode, pRawData->GetDefectData(nDefectIdx)->m_strDefectCode);
 					}
 				}
-				else //WSI TYPE 占쏙옙 占싣니몌옙 
+				else //WSI TYPE 
 				{
 					continue;
 				}
@@ -2107,7 +2248,6 @@
 		}
 		
 #pragma region CELLJUDGE
-	//CELL 占쏙옙占쏙옙占쏙옙////////////////////////////////////////////////////////////////
 
 	int nCellCount = pRawData->GetGlassData()->m_nCellNum;
 
@@ -2126,7 +2266,7 @@
 		else if (pRawData->GetCellData(nCellIndex)->m_nJudgement == Judge_OK_CPJT)
 		{
 			nCelllOKJuge = nCelllOKJuge + 1;
-		} //taek 21.01.25 Juge 占쏙옙占싹댐옙 占쏙옙占쏙옙 占쏙옙占쌈곤옙 占쌕뀐옙占쏙옙...
+		} //taek 21.01.25
 		else if (pRawData->GetCellData(nCellIndex)->m_nJudgement == Judge_PR_CPJT)
 		{
 			nCelllPRJuge = nCelllPRJuge + 1;
@@ -2170,7 +2310,7 @@
 				}
 				else
 				{
-					m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::ReviewEnd] 카占쏙옙트 占쏙옙占쏙옙占쏙옙 占쏙옙占쏙옙占쏙옙 [%02d]Cell DefectTRCount[%d] >= [%d]"), nCellIndex, pRawData->GetCellData(nCellIndex)->m_nDefectNumJudgeTR, pRcpJudgeInfo->GetJudgeCount());
+					m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::ReviewEnd] Count Number is minus! [%02d]Cell DefectTRCount[%d] >= [%d]"), nCellIndex, pRawData->GetCellData(nCellIndex)->m_nDefectNumJudgeTR, pRcpJudgeInfo->GetJudgeCount());
 				}
 				break;
 			case JudgeType_T8_PR:
@@ -2220,7 +2360,7 @@
 				}
 				else
 				{
-					m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::ReviewEnd] 카占쏙옙트 占쏙옙占쏙옙占쏙옙 占쏙옙占쏙옙占쏙옙 [%02d]Cell DefectTRCount[%d] <= [%d]"), nCellIndex, pRawData->GetCellData(nCellIndex)->m_nDefectNumJudgeTR, pRcpJudgeInfo->GetSubJudgeCount());
+					m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::ReviewEnd] Count Number is minus! [%02d]Cell DefectTRCount[%d] <= [%d]"), nCellIndex, pRawData->GetCellData(nCellIndex)->m_nDefectNumJudgeTR, pRcpJudgeInfo->GetSubJudgeCount());
 				}
 				break;
 			case JudgeType_T8_PR:
@@ -2384,7 +2524,7 @@
 	}
 	m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::ReviewEnd] CELL COUNT OK:[%d] TR[%d] PR[%d]"), nCelllOKJuge, nCellTRJudge, nCelllPRJuge);
 #pragma endregion
-	//GLASS 占쏙옙占쏙옙占쏙옙////////////////////////////////////////////////////////////////
+	
 #pragma region GLASSJUDGE
 	CRsRcpReviewInfo* pRsRcpReviewInfo = m_pSP2P->ISP2P_Recipe_GetRsRcpReviewInfo();
 	if (pRsRcpReviewInfo == NULL) return FALSE;
@@ -2432,7 +2572,7 @@
 			}
 			else
 			{
-				m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::ReviewEnd] TR 카占쏙옙트占쏙옙 占쏙옙占쏙옙占쏙옙 [%02d]GLASS Defect TR Count[%d] >= [%d]"), nIdx, pRawData->GetGlassData()->m_nDefectNumJudgeTR, pRcpJudgeInfo->GetJudgeCount());
+				m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::ReviewEnd] TR Count is minus [%02d]GLASS Defect TR Count[%d] >= [%d]"), nIdx, pRawData->GetGlassData()->m_nDefectNumJudgeTR, pRcpJudgeInfo->GetJudgeCount());
 			}
 			break;
 		case JudgeType_T8_PR:
@@ -2482,7 +2622,7 @@
 			}
 			else
 			{
-				m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::ReviewEnd]TR카占쏙옙트占쏙옙 占쏙옙占쏙옙占쏙옙 [%02d]GLASS Defect TR Count[%d] <= [%d]"), nIdx, pRawData->GetGlassData()->m_nDefectNumJudgeTR, pRcpJudgeInfo->GetSubJudgeCount());
+				m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::ReviewEnd]TR Count is minus [%02d]GLASS Defect TR Count[%d] <= [%d]"), nIdx, pRawData->GetGlassData()->m_nDefectNumJudgeTR, pRcpJudgeInfo->GetSubJudgeCount());
 			}
 			break;
 		case JudgeType_T8_PR:
@@ -2670,7 +2810,7 @@
 		CakFileUtil akFileFinder;
 		while (nReTryTime--)
 		{
-			//#3359_LYW CF AOI Review REVIEW_LOADING_COMPLETE_TIMEOVER 占싯띰옙 占쌩삼옙 占쏙옙占쏙옙 占싻쇽옙 START
+			//#3359_LYW CF AOI Review REVIEW_LOADING_COMPLETE_TIMEOVER START
 			if (nReTryTime%2 == 0)
 			{
 				strFilePath = AOIRAWBIN_PATH;
@@ -2679,9 +2819,9 @@
 
 			strWild.Format("%s\\%s_*.bin", strFilePath, strFileName);
 			 akFileFinder.FindFile(strWild.GetBuffer(0), FALSE);
-			//LYW LOG占쌩곤옙
+			//LYW LOG
 			g_pLog->DisplayMessage(_T("[GlassLoading][FindRawBinFile] Find Path = %s, RetryCount = %d, ResultCode = [%d]"), strFilePath, 30-nReTryTime, GetLastError());
-			//#3359_LYW CF AOI Review REVIEW_LOADING_COMPLETE_TIMEOVER 占싯띰옙 占쌩삼옙 占쏙옙占쏙옙 占싻쇽옙 END
+			//#3359_LYW CF AOI Review REVIEW_LOADING_COMPLETE_TIMEOVER END
 			VECFINDDATA* pFindData = akFileFinder.getFindData();
 			int nFileNamePos = strlen(akFileFinder.getProcessPath());
 			std::map<LONGLONG, CString> mapSpanFileName;
@@ -2693,7 +2833,7 @@
 					parser.process(pFileName, "_.");
 					if (parser.getTokNum() < 4) continue;
 					
-					if (parser.getTokNum() >= 6) continue; // 0401 占쌩곤옙
+					if (parser.getTokNum() >= 6) continue; // 0401
 
 					int nDataTime[8] = {};
 					{
@@ -2721,7 +2861,6 @@
 			{
 				if (mapSpanFileName.begin()->first < nCloseTime)
 				{
-					//占쏙옙占쏙옙 占쌍깍옙 占쏙옙占쏙옙占쏙옙占� 찾占쏙옙 占쏙옙占쏙옙 [占쏙옙占쏙옙占쏙옙 2019/7/17]
 					strFindFile = mapSpanFileName.begin()->second;
 					break;
 				}
@@ -2781,7 +2920,7 @@
 
 	int nPCControlReadDataCount = pSignalInfo->GetReadDataAddressCount();
 
-	// [2017:1:9]-[WEZASW] : PCControl GlassData 占쌓몌옙 占쏙옙占쏙옙占쏙옙.
+	// [2017:1:9]-[WEZASW] : PCControl GlassData 
 	if(pSignalInfo->GetUseContinuousReadAddress())
 	{
 		CString strReadAddress = _T("");
@@ -3160,11 +3299,11 @@
 
 void CSequenceProcessor_CPJT::UpdateGlassResultFromTransferData(CGlassResult *pGlassResult, STransferData* pTransferData)
 {
-	m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::Loading] Transfer Data 占싻깍옙!"));
+	m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::Loading] Transfer Data Read!"));
 
 	if (pGlassResult==NULL || pTransferData==NULL) return;
 
-	// [2017:1:9]-[WEZASW] : PCControl GlassData 占쌓몌옙 占쏙옙占쏙옙占쏙옙
+	// [2017:1:9]-[WEZASW] : PCControl GlassData 
 	// transfer data is not exist
 	if (pTransferData->strLotID.GetLength()<1)
 	{
@@ -3233,10 +3372,10 @@
 	pGlassResult->m_strPairFlag = pTransferData->strPairFlag;
 	pGlassResult->m_strOptionValue = pTransferData->strOptionValue;
 	pGlassResult->m_strReserved = pTransferData->strReserved;
-	pGlassResult->strGlassScanSchedule = pTransferData->strGlassScanSchedule;//占쏙옙占쏙옙 占쏙옙占쏙옙 cmark
+	pGlassResult->strGlassScanSchedule = pTransferData->strGlassScanSchedule;//cmark
 	pGlassResult->m_strRTMSStepID = pTransferData->strStepID; //taek 210126
 	
-	m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::Loading] Transfer Data 占쏙옙!"));
+	m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::Loading] Transfer Data END!"));
 }
 
 void CSequenceProcessor_CPJT::UpdateHistoryResultFromTransferData(CGlassResult *pHistoryResult, CGlassResult* pGlassResult)
@@ -3294,7 +3433,7 @@
 	pHistoryResult->m_strPairFlag = pGlassResult->m_strPairFlag;
 	pHistoryResult->m_strOptionValue = pGlassResult->m_strOptionValue;
 	pHistoryResult->m_strReserved = pGlassResult->m_strReserved;
-	pHistoryResult->strGlassScanSchedule = pGlassResult->strGlassScanSchedule;//占쏙옙占쏙옙 占쏙옙占쏙옙 cmark
+	pHistoryResult->strGlassScanSchedule = pGlassResult->strGlassScanSchedule;// cmark
 	pHistoryResult->m_strStepID = pGlassResult->m_strRTMSStepID; //taek 210126
 	pHistoryResult->m_strEquipID = pGlassResult->m_strEquipID;
 	pHistoryResult->m_strProcessID = pGlassResult->m_strProcessID;
@@ -3306,7 +3445,7 @@
 
 void CSequenceProcessor_CPJT::CreateResultDirectory(const CString& strGlassID, const CString& strDate)
 {
-	m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::Loading] 占쏙옙占썰리 占쏙옙占쏙옙占� 占쏙옙占쏙옙"));
+	m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::Loading] Make Directory Start"));
 	if (m_pSP2P==NULL) return;
 
 	const CNetworkInfo *pNetworkInfo = m_pSP2P->ISP2P_System_GetNetworkInfo();
@@ -3352,7 +3491,7 @@
 		strPath.Format(_T("%s\\%s"),pNetworkInfo->m_strAlignImagePath, strGlassID);
 		CreateDirectory(strPath, NULL);
 	}
-	m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::Loading] 占쏙옙占썰리 占쏙옙占쏙옙占� 占쏙옙"));
+	m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::Loading] Make directory End"));
 }
 
 
@@ -3360,7 +3499,7 @@
 
 void CSequenceProcessor_CPJT::SetSaveImageBasePathToReviewProcessor(const CString& strGlassID, const CString& strResultDate)
 {
-	m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::Loading] 占싱뱄옙占쏙옙 占싻쏙옙 占쏙옙占쏙옙占� 占쏙옙占쏙옙"));
+	m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::Loading] Make image path start"));
 	const CNetworkInfo *pNetworkInfo = m_pSP2P->ISP2P_System_GetNetworkInfo();
 	if(pNetworkInfo == NULL) return;
 
@@ -3405,11 +3544,11 @@
 				Sleep(1000);
 				if (CDitGlassRawClient::GetInstance()->isConnect() == FALSE)
 				{
-					m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::GlassLoading]占쏙옙占쏙옙占쌨몌옙 占쏙옙占쏙옙 占쏙옙占쏙옙 Count[%d]"), nReconnect);
+					m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::GlassLoading]access Shared Memory Fail!! Count[%d]"), nReconnect);
 				}
 				else
 				{
-					m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::GlassLoading]占쏙옙占쏙옙占쌨몌옙 占쏙옙占쏙옙 占쏙옙占쏙옙"));
+					m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::GlassLoading]access Shared Memory Success"));
 					break;
 				}
 				nReconnect += 1;
@@ -3432,7 +3571,7 @@
 		else
 		{
 			tmServerLoadingTime = CTime::GetCurrentTime();
-			m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::GlassLoading] 占쏙옙占쏙옙占쌨몌옙 占쏙옙占쏙옙占싱삼옙"));
+			m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::GlassLoading] access Shared Memory Fail"));
 			strPath.Format(_T("%s\\%s_%04d%02d%02d%02d%02d%02d"), pNetworkInfo->m_strUploadImagePath, strGlassID, tmServerLoadingTime.GetYear(), tmServerLoadingTime.GetMonth(), tmServerLoadingTime.GetDay(), tmServerLoadingTime.GetHour(), tmServerLoadingTime.GetMinute(), tmServerLoadingTime.GetSecond());
 			strImagePath.Format(_T("%s\\%s_%04d%02d%02d%02d%02d%02d"), strGlassID, tmServerLoadingTime.GetYear(), tmServerLoadingTime.GetMonth(), tmServerLoadingTime.GetDay(), tmServerLoadingTime.GetHour(), tmServerLoadingTime.GetMinute(), tmServerLoadingTime.GetSecond());
 			CreateDirectory(strPath, NULL);
@@ -3441,12 +3580,12 @@
 		}
 
 	}
-	m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::Loading] 占싱뱄옙占쏙옙 占싻쏙옙 占쏙옙占쏙옙占� 占쏙옙"));
+	m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::Loading] Make image path End"));
 }
 
 void CSequenceProcessor_CPJT::SetSaveImageBasePathToAlignCameraControl(const CString& strGlassID)
 {
-	m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::Loading] 占쏙옙占쏙옙占� 占싱뱄옙占쏙옙 占싻쏙옙 占쏙옙占쏙옙 "));
+	m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::Loading]  Make Align image path Start"));
 	const CNetworkInfo *pNetworkInfo = m_pSP2P->ISP2P_System_GetNetworkInfo();
 	if(pNetworkInfo == NULL) return;
 
@@ -3459,7 +3598,7 @@
 		strPath.Format(_T("%s\\%s"), pNetworkInfo->m_strAlignImagePath, strGlassID);
 		pAlignCameraControl->SetSaveImageBasePath(strPath);
 	}
-	m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::Loading] 占쏙옙占쏙옙占� 占싱뱄옙占쏙옙 占싻쏙옙 占쏙옙 "));
+	m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::Loading] Make Align image path End "));
 }
 
 BOOL CSequenceProcessor_CPJT::ReadRecipeDataFromRecipeFile(const CString& strPPID_RC, CString& strRecipeName)// const CString& strPPID, CString& strRecipeName
@@ -3526,14 +3665,12 @@
 {
 	if(pGlassResult == NULL) return FALSE;
 
-	// 占쏙옙占쏙옙占쏙옙 占쏙옙占쏙옙
 	const CRsRcpReviewInfo* pRsRcpReviewInfo = m_pSP2P->ISP2P_Recipe_GetRsRcpReviewInfo();
 	if (pRsRcpReviewInfo==NULL) return FALSE;
 
 	// system info
 	const CSystemInfo* pSystemInfo = m_pSP2P->ISP2P_System_GetSystemInfo();
 
-	// 占쌜띰옙 占쏙옙占쏙옙
 	STransferData* pTransferData = m_pSP2P->ISP2P_GetCurrentTransferData();
 	if (pTransferData==NULL) return FALSE;
 	int nGlassTypeInfoIndex = 0;
@@ -3549,20 +3686,16 @@
 	if (pGlassTypeInfo == NULL) return FALSE;
 	m_pSP2P->ISP2P_DisplayMessage(_T("GlassTypeName : %s,GlassTypeIdx : %s"),pGlassTypeInfo->m_strGlassTypeName,pTransferData->strGlassScanSchedule);
 	
-	// 占쏙옙占쏙옙 占쏙옙占쏙옙
 	const CMotorControlInfo *pMotorInfo = m_pSP2P->ISP2P_System_GetMotorInfo();
 
-	// 占쏙옙표 占쏙옙환占쏙옙
 	CCoordCalibrator* pCoordCalibrator = m_pSP2P->ISP2P_GetCoordCalibrator();
 
-	// 占쏙옙표占쏙옙 占쏙옙占쏙옙
 	if (pSystemInfo && pGlassTypeInfo && pMotorInfo && pCoordCalibrator)
 	{
 		// Get Direction		
 		int nDirectionX = GetDirectionX(pGlassTypeInfo->m_nOriginDirection, pMotorInfo->GetOriginDirection());
 		int nDirectionY = GetDirectionY(pGlassTypeInfo->m_nOriginDirection, pMotorInfo->GetOriginDirection());
 
-		// 占쏙옙표占쏙옙 占쏙옙占쏙옙
 		pCoordCalibrator->SetTransDirection(nDirectionX, nDirectionY);
 		pCoordCalibrator->SetOriginMotorPosition(pGlassTypeInfo->m_dOriginMotorX, pGlassTypeInfo->m_dOriginMotorY);
 		if (fabs(pGlassTypeInfo->m_dAlignAngle) > 0.0000001)
@@ -3571,7 +3704,6 @@
 				pGlassTypeInfo->m_dFirstAlignGlassX, pGlassTypeInfo->m_dFirstAlignGlassY, pGlassTypeInfo->m_dAlignAngle);
 		}
 
-		// 占쌜띰옙 占쏙옙占쏙옙 占쏙옙占쏙옙
 		pGlassResult->SetGlassSize(pGlassTypeInfo->m_nGlassSizeX * 1000, pGlassTypeInfo->m_nGlassSizeY * 1000);
 		pGlassResult->SetGlassOriginDirection(pGlassTypeInfo->m_nOriginDirection);
 		pGlassResult->SetCornerCutDirection(pGlassTypeInfo->m_nCornerCutDirection);
@@ -3580,34 +3712,28 @@
 		pGlassResult->SetCollisionDistanceX(int(pSystemInfo->m_dCollisionDistance*1000.));
 	}
 
-	// Align 占쏙옙占쏙옙
 	const CRsRcpAlignInfo* pRsRcpAlignInfo = m_pSP2P->ISP2P_Recipe_GetRsRcpAlignInfo();
 
-	// Align 占쏙옙占쏙옙 占쏙옙占쏙옙
 	if (pGlassTypeInfo && pRsRcpAlignInfo)
 	{
-		// Align 占쏙옙크 占쏙옙占쏙옙 占쏙옙占쏙옙 (占싫쇽옙, 占쏙옙占쏙옙, 占쌜띰옙 占쏙옙치)
 		pGlassResult->m_AlignRecipe.m_nUseAlignPosMove		= pGlassTypeInfo->m_nUseAlignPosMove;
 
-		// 占싫쇽옙 占쏙옙치
 		pGlassResult->m_AlignRecipe.dOriginPixelX[0]		= pGlassTypeInfo->m_nFirstAlignFindPixelX;
 		pGlassResult->m_AlignRecipe.dOriginPixelY[0]		= pGlassTypeInfo->m_nFirstAlignFindPixelY;
 		pGlassResult->m_AlignRecipe.dOriginPixelX[1]		= pGlassTypeInfo->m_nSecondAlignFindPixelX;
 		pGlassResult->m_AlignRecipe.dOriginPixelY[1]		= pGlassTypeInfo->m_nSecondAlignFindPixelY;
 
-		// 占쏙옙占쏙옙 占쏙옙치
 		pGlassResult->m_AlignRecipe.dOriginPositionX[0]		= pGlassTypeInfo->m_dFirstAlignMotorX;
 		pGlassResult->m_AlignRecipe.dOriginPositionY[0]		= pGlassTypeInfo->m_dFirstAlignMotorY;
 		pGlassResult->m_AlignRecipe.dOriginPositionX[1]		= pGlassTypeInfo->m_dSecondAlignMotorX;
 		pGlassResult->m_AlignRecipe.dOriginPositionY[1]		= pGlassTypeInfo->m_dSecondAlignMotorY;
 
-		// 占쌜띰옙 占쏙옙치
 		pGlassResult->m_AlignRecipe.dGlassPositionX[0]		= pGlassTypeInfo->m_dFirstAlignGlassX;
 		pGlassResult->m_AlignRecipe.dGlassPositionY[0]		= pGlassTypeInfo->m_dFirstAlignGlassY;
 		pGlassResult->m_AlignRecipe.dGlassPositionX[1]		= pGlassTypeInfo->m_dSecondAlignGlassX;
 		pGlassResult->m_AlignRecipe.dGlassPositionY[1]		= pGlassTypeInfo->m_dSecondAlignGlassY;
 
-		// Align Recipe 占쏙옙占쏙옙 占쏙옙占쏙옙 占쌘듸옙占쏙옙占쏙옙 찾占쏙옙 占식띰옙占쏙옙占�
+		// Align Recipe 
 		// Align Skip Mode
 		pGlassResult->m_AlignRecipe.bAlignSkipMode		= pRsRcpAlignInfo->m_bAlignSkipMode;
 		pGlassResult->m_AlignRecipe.bUseTotalPitchMeasure = pRsRcpAlignInfo->m_bTotalPitchMeasure;
@@ -3627,29 +3753,24 @@
 		pGlassResult->m_AlignRecipe.nMergeRange			= pRsRcpAlignInfo->m_nMergeRange;
 		pGlassResult->m_AlignRecipe.dEdgeRate			= pRsRcpAlignInfo->m_dEdgeRate;
 		
-		// 占쏙옙占쏙옙챨占�
 		pGlassResult->m_AlignRecipe.bManualProcess			= pRsRcpAlignInfo->m_bManualProcess;
 		pGlassResult->m_AlignRecipe.dFirstCamExposure		= pRsRcpAlignInfo->m_dFirstCamExposure;
 		pGlassResult->m_AlignRecipe.dSecondCamExposure		= pRsRcpAlignInfo->m_dSecondCamExposure;
 
-		// 占쌘듸옙占쏙옙占쏙옙 占쏙옙占쏙옙
 		pGlassResult->m_AlignRecipe.bAutoProcess			= pRsRcpAlignInfo->m_bAutoProcess;
 		pGlassResult->m_AlignRecipe.dTargetMin				= pRsRcpAlignInfo->m_dTargetMin;
 		pGlassResult->m_AlignRecipe.dTargetMax				= pRsRcpAlignInfo->m_dTargetMax;
 		pGlassResult->m_AlignRecipe.dExposureMin			= pRsRcpAlignInfo->m_dExposureMin;
 		pGlassResult->m_AlignRecipe.dExposureMax			= pRsRcpAlignInfo->m_dExposureMax;
 
-		// Align Recipe 占쏙옙占쏙옙 占쏙옙占쏙옙 rotate info
 		pGlassResult->m_AlignRecipe.bRotateProcess			= pRsRcpAlignInfo->m_bRotateProcess;
 		pGlassResult->m_AlignRecipe.nRetryCount				= pRsRcpAlignInfo->m_nRetryCount;
 		pGlassResult->m_AlignRecipe.dGlassAngleMin			= pRsRcpAlignInfo->m_dGlassAngleMin;
 		pGlassResult->m_AlignRecipe.dGlassAngleMax			= pRsRcpAlignInfo->m_dGlassAngleMax;
-
-		// Align 카占쌨띰옙 占쏙옙占쏙옙 占쏙옙 占쌔삼옙 占쏙옙占쏙옙		
+		
 		int nAlignCameraInfoCount = 2;
 		for(int nAlignCameraIdx = 0; nAlignCameraIdx < nAlignCameraInfoCount; nAlignCameraIdx++)
 		{
-			// Align 占쏙옙占쏙옙 占쏙옙 占쏙옙占쏙옙占쏙옙占쏙옙.
 			int nLightValue = 0;
 			
 			
@@ -3657,10 +3778,8 @@
 			{
 				nLightValue = (nAlignCameraIdx==0) ? (int)pRsRcpAlignInfo->m_dFirstCamExposure: (int)pRsRcpAlignInfo->m_dSecondCamExposure;
 
-				// 占쏙옙占쏙옙占� 카占쌨띰옙 占쏙옙占쏙옙 占쏙옙占쏙옙占쏙옙占쏙옙 
 				const CAlignCameraInfo *pCameraInfo = m_pSP2P->ISP2P_System_GetAlignCameraInfo(nAlignCameraIdx);
 
-				 //占쏙옙占쏙옙占� 占쏙옙占쏙옙.
 				CLightControl *pLightControl = NULL;
 
 				const CLightControlInfo *AlignLightinfo = pCameraInfo->GetLightContorlInfo();
@@ -3669,8 +3788,6 @@
 				{
 					if (AlignLightinfo->GetMaster()==1&& nAlignCameraIdx==1)
 					{
-						//占쏙옙占쏙옙占� 占쏙옙틀占싼뤄옙占쏙옙 占싹놂옙占쏙옙 占쏙옙占쏙옙퓸占� 占쏙옙占쏙옙占쏙옙 占쏙옙占쏙옙占쏙옙 占쏙옙占싸뤄옙 확占쏙옙 
-						//占쏙옙占쏙옙占쏙옙 占싱곤옙 占승댐옙占쏙옙 占쏜르겟댐옙 占싣뱄옙占쏙옙 占싫알뤄옙占쏙옙
 						pLightControl = m_pSP2P->ISP2P_GetAlignLightControl(0);
 
 					}
@@ -3704,8 +3821,6 @@
 				}
 			}
 			
-
-			// 占쏙옙占쏙옙占� 카占쌨띰옙 占쏙옙占쏙옙 占쏙옙占쏙옙占쏙옙占쏙옙 
 			const CAlignCameraInfo *pCameraInfo	= m_pSP2P->ISP2P_System_GetAlignCameraInfo(nAlignCameraIdx);
 			if (pCameraInfo)
 			{
@@ -3733,7 +3848,6 @@
 				}
 			}
 
-			// 占쏙옙占쏙옙占� 占쏙옙占시몌옙 占쏙옙占쏙옙 占쏙옙占쏙옙占쏙옙占쏙옙
 			if((int)pGlassTypeInfo->m_vecTemplateImagePath.size() == nAlignCameraInfoCount)
 			{
 				pGlassResult->m_AlignRecipe.strTemplateName[nAlignCameraIdx] = pGlassTypeInfo->m_vecTemplateImagePath[nAlignCameraIdx];
@@ -3762,14 +3876,13 @@
 			if (pRcpReviewAFMInfo)
 			{
 				int nRealAFMIndex = pRcpReviewAFMInfo->m_nRecipeIndex;
-				if(nRealAFMIndex == -1)// 占쏙옙占쏙옙占실울옙 占쏙옙占시듸옙 占쏙옙占쏙옙占쏙옙 占쏙옙占쏙옙 MagnificInfo Index占쏙옙 占싯아울옙
+				if(nRealAFMIndex == -1)
 				{
-					//-1占쏙옙 占쏙옙占� 占쏙옙占쏙옙 占싸듸옙占쏙옙 占쏙옙占쏙옙占쏙옙 占쏙옙.
 					nRealAFMIndex = GetRealMagnification(nModuleIdx, pRcpReviewAFMInfo->m_nZoomIndex);
 				}
 				AFM_SetAFMRecipeName(nModuleIdx, strRecipeName, nRealAFMIndex);
 
-				if(pRcpReviewAFMInfo->m_bAFMHomeOffMode==TRUE) //190618AFM홈 占쏙옙占쏙옙占쏙옙 占쏙옙占쏙옙 X
+				if(pRcpReviewAFMInfo->m_bAFMHomeOffMode==TRUE) //190618AFM
 				{
 					SetUseAfmHomePosition(FALSE);
 				}
@@ -3781,7 +3894,6 @@
 		}
 	}
 
-	// 占쏙옙占쏙옙 찾占쏙옙 占쏙옙占쏙옙占쏙옙 占쏙옙占쏙옙
 	CReviewProcessor* pReviewProcessor = m_pSP2P->ISP2P_GetReviewProcessor();
 	const CRsRcpDefectFindInfo* pRsRcpDefectFindInfo = m_pSP2P->ISP2P_Recipe_GetRsRcpDefectFindInfo();
 	if(pReviewProcessor && pRsRcpDefectFindInfo)
@@ -3832,7 +3944,6 @@
 
 	CString strRawTDPath=_T(""), strRawCDPath=_T(""), strRawSDPath=_T("");
 
-	// 占쏙옙占쏙옙占쏙옙占� 占싱몌옙 찾占쏙옙
 	FindAOIRawFilePath(pGlassResult, &strRawTDPath, &strRawCDPath, &strRawSDPath);
 
 	bRet = m_pSP2P->ISP2P_ReadAOIRawFileToGlassResult(strRawTDPath);
@@ -3886,7 +3997,7 @@
 		if(finder.IsDots()) continue;
 		if(finder.IsDirectory()) continue;
 
-		// [2017:5:16]-[WEZASW] : AOI Server占쏙옙 占쏙옙占쏙옙 占쏙옙占쏙옙 占쏙옙치占쏙옙 占쏙옙占쌉몌옙 占싱뱄옙占쏙옙 占쏙옙占쏙옙 占쏙옙占쏙옙占� 占쏙옙占쏙옙 占쏙옙占싹몌옙 占쏙옙占쏙옙
+		// [2017:5:16]-[WEZASW] : AOI Server
 		sRawFile.strFileName = finder.GetFileName();
 		strExtTemp = sRawFile.strFileName;
 		int nIdx = strExtTemp.Remove('.');		
@@ -4064,7 +4175,6 @@
 		CModuleStatus*					pModuleStatus	= Module_GetModuleStatus(nModuleIdx);		
 		if (pModuleStatus == NULL) continue;
 
-		//占썸돌占신몌옙 占쌍깍옙
 		{
 
 		double dCollisionPosX = pReviewResult->GetCollisionPositionX() / 1000.0;
@@ -4105,13 +4215,12 @@
 
 		}
 
-		//占승울옙 占쏙옙트占쏙옙 占쏙옙占쏙옙占싱듸옙 
 		pMotorControl->GantrySetTwoGantrySyncModeSend(0);
 
 		// set result index
 		int nStartIdx = pReviewResult->GetStartSReviewResultIndex();
 		int nEndIdx = pReviewResult->GetEndSReviewResultIndex();
-		nEndIdx = min(nEndIdx, (pReviewResult->GetSReviewResultCount()-1)) + 1;		// End Index 占쌕시쇽옙占쏙옙
+		nEndIdx = min(nEndIdx, (pReviewResult->GetSReviewResultCount()-1)) + 1;		// End Index 
 
 		double xpostemp, ypostemp;
 		// get review pos
@@ -4121,7 +4230,7 @@
 			SReviewResult* pReview = pReviewResult->GetSReviewResult(nResultIdx);
 			if (pReview==NULL) continue;
 
-			//200占쏙옙 占쏙옙藥뱄옙占쏙옙占� 占쏙옙占쏙옙占쏙옙 占싹뤄옙占쏙옙占쏙옙占쏙옙占� 占쌩븝옙체크
+			//200
 			if (pReview->bCheckSendToMotor == FALSE)
 			{
 				pReview->bCheckSendToMotor = TRUE;
@@ -4168,7 +4277,6 @@
 			}
 		}
 
-		//占쏙옙占쏙옙 占쏙옙占쏙옙트占쏙옙 占쌍댐옙占쏙옙 占쏙옙占쏙옙占쏙옙 체크
 		if (vectorPosX.empty() ==TRUE)
 		{
 			g_pLog->DisplayMessage(_T("[GantryAutoGo] No Exist Send Point "), vectorPosX.size());
@@ -4200,13 +4308,11 @@
 			int nTickCount = GetTickCount();
 			while (1)
 			{
-				//5占쏙옙 占쏙옙占쏙옙타占쏙옙
 				if ((GetTickCount() - nTickCount) > 5000)
 				{
 					bOverTime = TRUE;
 					break;
 				}
-				//占쏙옙占쏙옙 占쏙옙占� End 체크 
 				if (pMotorControl->IsGantryMotionEnd(pModuleStatus->GetGantryIndex()) == TRUE)
 				{
 					if (pMotorControl->GantryAutoGo(pModuleStatus->GetGantryIndex(), vectorPosX, vectorPosY, TRUE))
@@ -4225,15 +4331,12 @@
 
 			}
 
-			//5占쏙옙占식울옙占쏙옙 占싫울옙占쏙옙占싸댐옙? 占쌓뤄옙 3占쏙옙 占쏙옙천占� 占쏙옙占쏙옙
-			//占쏙옙占폜nd 占쏙옙 占쌩몌옙 占쏙옙占시쇽옙占쏙옙 占쏙옙占쏙옙占쏙옙
 			if (bOverTime == TRUE)
 			{
 				for (int i = 0; i < 3; i++)
 				{
 					Sleep(1000);
 
-					//占쏙옙占싶곤옙 占쏙옙占쏙옙占싹쇽옙 占쏙옙占승삼옙占쏙옙占싹띰옙 Send 占쏙옙호占쏙옙 Fail 占쌩삼옙 占쏙옙占쏙옙 Retry 3占쏙옙 占쏙옙占쏙옙 
 					if (pMotorControl->GantryAutoGo(pModuleStatus->GetGantryIndex(), vectorPosX, vectorPosY, TRUE))
 					{
 						nTotalCount += (int)vectorPosX.size();
@@ -4307,7 +4410,7 @@
 	if(pGlassResult && pReviewProcessor)
 	{
 		// UserStart
-		pReviewProcessor->SetJobID(pGlassResult->m_strJobID);	//pGlassResult->m_strGlassID -> pGlassResult->m_strJobID 占쏙옙占쏙옙
+		pReviewProcessor->SetJobID(pGlassResult->m_strJobID);	//pGlassResult->m_strGlassID -> pGlassResult->m_strJobID
 		pReviewProcessor->SetOperID(pGlassResult->m_strOperID);
 		m_pSP2P->ISP2P_UpdateReviewProcessStatus(ReviewProcessStatus_UserStart, nPlanIndex);
 
@@ -4370,7 +4473,6 @@
 		CModuleStatus*					pModuleStatus = Module_GetModuleStatus(nModuleIdx);
 		if (pModuleStatus == NULL) continue;
 
-		//占썸돌占신몌옙 占쌍깍옙
 		{
 
 			double dCollisionPosX = pReviewResult->GetCollisionPositionX() / 1000.0;
@@ -4413,9 +4515,9 @@
 		// set result index
 		int nStartIdx = pReviewResult->GetStartSReviewResultIndex();
 		int nEndIdx = pReviewResult->GetEndSReviewResultIndex();
-		nEndIdx = min(nEndIdx, (pReviewResult->GetSReviewResultCount() - 1)) + 1;		// End Index 占쌕시쇽옙占쏙옙
+		nEndIdx = min(nEndIdx, (pReviewResult->GetSReviewResultCount() - 1)) + 1;		// End Index 
 
-		// [2017:3:8]-[WEZASW] : CameraOffset 占쏙옙占쏙옙 占쏙옙占쏙옙 (-1~1 => -5~5)
+		// [2017:3:8]-[WEZASW] : CameraOffset (-1~1 => -5~5)
 		double m_dMinOffset = -5.0;
 		double m_dMaxOffset = 5.0;
 		double xpostemp, ypostemp;
@@ -4426,7 +4528,7 @@
 			SReviewResult* pReview = pReviewResult->GetSReviewResult(nResultIdx);
 			if (pReview == NULL) continue;
 
-			//200占쏙옙 占쏙옙藥뱄옙占쏙옙占� 占쏙옙占쏙옙占쏙옙 占싹뤄옙占쏙옙占쏙옙占쏙옙占� 占쌩븝옙체크
+			//200
 			if (pReview->bCheckSendToMotor == FALSE)
 			{
 				pReview->bCheckSendToMotor = TRUE;
@@ -4474,7 +4576,6 @@
 			}
 		}
 
-		//占쏙옙占쏙옙 占쏙옙占쏙옙트占쏙옙 占쌍댐옙占쏙옙 占쏙옙占쏙옙占쏙옙 체크
 		if (vectorPosX.empty() == TRUE)
 		{
 			g_pLog->DisplayMessage(_T("[GantryAutoGo] No Exist Send Point "), vectorPosX.size());
@@ -4539,7 +4640,7 @@
 	if(pGlassResult && pReviewProcessor)
 	{
 		// WsiStart
-		pReviewProcessor->SetJobID(pGlassResult->m_strJobID);	// pGlassResult->m_strGlassID -> pGlassResult->m_strJobID 占쏙옙占쏙옙
+		pReviewProcessor->SetJobID(pGlassResult->m_strJobID);	// pGlassResult->m_strGlassID -> pGlassResult->m_strJobID 
 		pReviewProcessor->SetOperID(pGlassResult->m_strOperID);
 		m_pSP2P->ISP2P_UpdateReviewProcessStatus(ReviewProcessStatus_WSIStart, nPlanIndex);
 
@@ -4552,7 +4653,7 @@
 		MakeWSIUpLoadDirectory(pReviewProcessor->GetUploadImagePath());
 
 		//20190219 chm 
-		pReviewProcessor->SetReviewCount(0);			// 占쏙옙占쏙옙 Sequence No 占십깍옙화.
+		pReviewProcessor->SetReviewCount(0);			
 
 		return TRUE;
 	}	
@@ -4565,7 +4666,7 @@
 	strPath  = strPath + _T("\\WSI");
 	if(CreateDirectory(strPath,NULL)==FALSE)
 	{
-		//LYW LOG占쌩곤옙
+		//LYW LOG
 		g_pLog->DisplayMessage(_T("[MakeWSIUpLoadDirectory]Directory Create Fail %s, ERROR CODE = %d "),strPath, GetLastError());
 	}
 	
@@ -4606,7 +4707,7 @@
 	VectorDouble vectorCollisionPosX;
 	vectorCollisionPosX.clear();
 
-	//WSI 占승울옙 占쏙옙트占쏙옙 占쏙옙占쏙옙占싱듸옙 
+	//WSI
 	pMotorControl->GantrySetTwoGantrySyncModeSend(1);
 	
 	// WSI result count
@@ -4619,7 +4720,6 @@
 		CModuleStatus*					pModuleStatus = Module_GetModuleStatus(nModuleIdx);
 		if (pModuleStatus == NULL) continue;
 
-		//占썸돌占신몌옙 占쌍깍옙
 		{
 			double dCollisionPosX = pWsiResult->GetCollisionPositionX() / 1000.0;
 			double dCollisionPosY = 0.0;
@@ -4660,7 +4760,7 @@
 		int nEndIdx = pWsiResult->GetEndSReviewResultIndex();
 		nEndIdx = min(nEndIdx, (pWsiResult->GetSReviewResultCount() - 1)) + 1;		// set End Index 
 
-		// [2017:3:8]-[WEZASW] : CameraOffset 占쏙옙占쏙옙 占쏙옙占쏙옙 (-1~1 => -5~5)
+		// [2017:3:8]-[WEZASW] : CameraOffset (-1~1 => -5~5)
 		double m_dMinOffset = -5.0;
 		double m_dMaxOffset = 5.0;
 
@@ -4672,7 +4772,7 @@
 			SReviewResult* pWsi = pWsiResult->GetSReviewResult(nResultIdx);
 			if (pWsi == NULL) continue;
 
-			//200占쏙옙 占쏙옙藥뱄옙占쏙옙占� 占쏙옙占쏙옙占쏙옙 占싹뤄옙占쏙옙占쏙옙占쏙옙占� 占쌩븝옙체크
+			//200
 			if (pWsi->bCheckWSISendToMotor == FALSE)
 			{
 				pWsi->bCheckWSISendToMotor = TRUE;
@@ -4719,14 +4819,13 @@
 			}
 		}
 
-		//占쏙옙占쏙옙 占쏙옙占쏙옙트占쏙옙 占쌍댐옙占쏙옙 占쏙옙占쏙옙占쏙옙 체크
 		if (vectorPosX.empty() == TRUE)
 		{
-			//3360 LYW_ CF AOI QD Review WSI XY MotorMoving Error 占싯띰옙 占쌩삼옙 占쏙옙占쏙옙 占싻쇽옙 占쏙옙 占쏙옙치 START
+			//3360 LYW_ CF AOI QD Review WSI XY MotorMoving Error START
 			g_pLog->DisplayMessage(_T("[GantryAutoGo] No Exist Send Point,TwoGantrySyncMode OFF!"), vectorPosX.size());
 			g_pLog->DisplayMessage(_T("[GantryAutoGo] (%d)Gantry Path Send Fail"), pModuleStatus->GetGantryIndex()); //taek 210128
 			pMotorControl->GantrySetTwoGantrySyncModeSend(0);
-			//3360 LYW_ CF AOI QD Review WSI XY MotorMoving Error 占싯띰옙 占쌩삼옙 占쏙옙占쏙옙 占싻쇽옙 占쏙옙 占쏙옙치 END
+			//3360 LYW_ CF AOI QD Review WSI XY MotorMoving Error END
 		}
 		else
 		{
@@ -4750,13 +4849,12 @@
 				int nTickCount = GetTickCount();
 				while (1)
 				{
-					//5占쏙옙 占쏙옙占쏙옙타占쏙옙
 					if ((GetTickCount() - nTickCount) > 5000)
 					{
 						bOverTime = TRUE;
 						break;
 					}
-					//占쏙옙占쏙옙 占쏙옙占� End 체크 
+					//End 체크 
 					if (pMotorControl->IsGantryMotionEnd(pModuleStatus->GetGantryIndex()) == TRUE)
 					{
 						if (pMotorControl->GantryAutoGo(pModuleStatus->GetGantryIndex(), vectorPosX, vectorPosY, TRUE))
@@ -4775,15 +4873,12 @@
 
 				}
 
-				//5占쏙옙占식울옙占쏙옙 占싫울옙占쏙옙占싸댐옙? 占쌓뤄옙 3占쏙옙 占쏙옙천占� 占쏙옙占쏙옙
-				//占쏙옙占폜nd 占쏙옙 占쌩몌옙 占쏙옙占시쇽옙占쏙옙 占쏙옙占쏙옙占쏙옙
 				if (bOverTime == TRUE)
 				{
 					for (int i = 0; i < 3; i++)
 					{
 						Sleep(1000);
 
-						//占쏙옙占싶곤옙 占쏙옙占쏙옙占싹쇽옙 占쏙옙占승삼옙占쏙옙占싹띰옙 Send 占쏙옙호占쏙옙 Fail 占쌩삼옙 占쏙옙占쏙옙 Retry 3占쏙옙 占쏙옙占쏙옙 
 						if (pMotorControl->GantryAutoGo(pModuleStatus->GetGantryIndex(), vectorPosX, vectorPosY, TRUE))
 						{
 							nTotalCount += (int)vectorPosX.size();
@@ -4918,9 +5013,9 @@
 		// get result index
 		int nStartIdx = pReviewResult->GetStartSReviewResultIndex();
 		int nEndIdx = pReviewResult->GetEndSReviewResultIndex();
-		nEndIdx = min(nEndIdx, (pReviewResult->GetSReviewResultCount()-1)) + 1;		// End Index 占쌕시쇽옙占쏙옙
+		nEndIdx = min(nEndIdx, (pReviewResult->GetSReviewResultCount()-1)) + 1;		// End Index 
 
-		// [2017:3:8]-[WEZASW] : CameraOffset 占쏙옙占쏙옙 占쏙옙占쏙옙 (-1~1 => -5~5)
+		// [2017:3:8]-[WEZASW] : CameraOffset (-1~1 => -5~5)
 		double m_dMinOffset = -5.0; 
 		double m_dMaxOffset = 5.0;
 
@@ -5022,7 +5117,7 @@
 	if(pGlassResult && pReviewProcessor)
 	{
 		// MeasureStart
-		pReviewProcessor->SetJobID(pGlassResult->m_strJobID);	// pGlassResult->m_strGlassID -> pGlassResult->m_strJobID 占쏙옙占쏙옙
+		pReviewProcessor->SetJobID(pGlassResult->m_strJobID);	// pGlassResult->m_strGlassID -> pGlassResult->m_strJobID
 		pReviewProcessor->SetOperID(pGlassResult->m_strOperID);
 		m_pSP2P->ISP2P_UpdateReviewProcessStatus(ReviewProcessStatus_MeasureStart, nPlanIndex);
 
@@ -5097,7 +5192,7 @@
 				const SCoordInfo* pCoordInfo = Module_GetCoordInfo(nModuleIdx);
 				if(pCoordInfo == NULL) continue;	
 
-				// [2017:3:8]-[WEZASW] : CameraOffset 占쏙옙占쏙옙 占쏙옙占쏙옙 (-1~1 => -5~5)
+				// [2017:3:8]-[WEZASW] : CameraOffset (-1~1 => -5~5)
 				double m_dMinOffset = -5.0; 
 				double m_dMaxOffset = 5.0;
 
@@ -5203,7 +5298,6 @@
 	int nTotalCount = 0;
 	double dDefectPosX, dDefectPosY;
 
-	// Module占쏙옙 占쏙옙치占쏙옙 占쏙옙占쏙옙 ModuleStatus sorting
 	std::vector<CModuleStatus*> SortedModuleStatus;
 	for(int nModuleIdx = 0; nModuleIdx < m_pSP2P->ISP2P_GetModuleStatusCount(); nModuleIdx++)
 	{
@@ -5257,7 +5351,7 @@
 				const SCoordInfo* pCoordInfo = Module_GetCoordInfo(pReviewResult->GetModuleIndex());
 				if(pCoordInfo == NULL) continue;				
 
-				// [2017:3:8]-[WEZASW] : CameraOffset 占쏙옙占쏙옙 占쏙옙占쏙옙 (-1~1 => -5~5)
+				// [2017:3:8]-[WEZASW] : CameraOffset (-1~1 => -5~5)
 				double m_dMinOffset = -5.0; 
 				double m_dMaxOffset = 5.0;
 
@@ -5278,7 +5372,6 @@
 
 				if(nHeaderIdx == 0)
 				{
-					// 占싱듸옙占쏙옙 占쏙옙占쏙옙占쏙옙표 占쌩곤옙
 					if((int)vectorPos.size() < MAX_MOTOR_ADDRESS_SIZE)
 					{
 						pSReviewResult->dTargetMotorX = dDefectPosX;
@@ -6545,8 +6638,6 @@
 
 			// add user schedule result
 			
-			
-			//占쏙옙占쏙옙占쌨모리울옙 채占쏙옙占쏙옙 占쏙옙占쏙옙占쏙옙 占쏙옙占쏙옙占쏙옙 占쏙옙占쏙옙 占쏙옙표占쏙옙 占쏙옙占쏙옙체占쏙옙 채占쏙옙占쌍댐옙 占쏙옙占�  
 			{
 
 
@@ -7261,7 +7352,6 @@
 				break;
 			}
 			break;
-		// 占싱삼옙占�
 		case CPJT_PlanMeasure:
 			{
 				const CRcpMeasureInfo *pRcpMeasureInfo = pRsRcpMeasureInfo->GetRcpMeasureInfo(0);
@@ -7394,7 +7484,7 @@
 }
 
 //CIM DV Data
-BOOL CSequenceProcessor_CPJT::SendDVDataToSignalControl() // 占쏙옙占쏙옙
+BOOL CSequenceProcessor_CPJT::SendDVDataToSignalControl()
 {
 	CGlassResult *pGlassResult = m_pSP2P->ISP2P_GetCurrentGlassResult();
 	if (pGlassResult==NULL) return FALSE;
@@ -7419,7 +7509,7 @@
 }
 
 
-int CSequenceProcessor_CPJT::MakeDVData(CGlassResult *pGlassResult, char* pDVData, int nIndex) // 占쏙옙占쏙옙
+int CSequenceProcessor_CPJT::MakeDVData(CGlassResult *pGlassResult, char* pDVData, int nIndex) 
 {
 	g_pLog->DisplayMessage(_T("[SequenceProcessor] SendDVDataToSignalControl->MakeDVData IN."));
 
@@ -7428,16 +7518,16 @@
 	const CRsRcpReviewInfo* pRsRcpReviewInfo = m_pSP2P->ISP2P_Recipe_GetRsRcpReviewInfo();
 	if (pRsRcpReviewInfo == NULL) return FALSE;
 
-	// Review 占쏙옙占쏙옙 占쏙옙占쏙옙
+	// Review 
 	const CRcpLightInfo *pReviewLightInfo = pRsRcpReviewInfo->GetRcpLightInfo(nIndex);
-	// Review AFM 占쏙옙占쏙옙
+	// Review AFM 
 	const CRcpAFMRecipeInfo *pReviewAFMInfo = pRsRcpReviewInfo->GetRcpAFMRecipeInfo(nIndex);
 	// Review Align Info
 	const CAlignResult*	pAlignResult = pGlassResult->GetAlignResult();
 	// Review Defect Info
 	const CReviewResult* pReviewResult = pGlassResult->GetReviewResult(nIndex);
 
-	// Review 占쏙옙占쏙옙 占쏙옙占쏙옙
+	// Review 
 	const CModuleStatus* pModuleStatus = Module_GetModuleStatus(nIndex);
 	const SMagnificInfo* pSMagnificInfo = pModuleStatus->GetMagnificInfo(pReviewAFMInfo->GetZoomIndex());
 	CSignalControl* pSignalControl = m_pSP2P->ISP2P_GetSignalControl();
@@ -7459,12 +7549,12 @@
 	// Write DVData Packet
 	//_DVDataPack_B7_8ver DVDataPack;
 	//**Review
-	//INLINE  : 10占쏙옙 
-	//TFE-OFF : 20占쏙옙 
-	//Hcut : 50占쏙옙 
-	//LAMI : 5占쏙옙 
+	//INLINE  : 10 
+	//TFE-OFF : 20 
+	//Hcut : 50
+	//LAMI : 5 
 	//**WSI
-	//10占쏙옙 占쏙옙占쏙옙 
+	//10
 	///////////////////////////////////////////////////////////////////////////
 
 
@@ -7511,8 +7601,8 @@
 	//nAlignResult = 1;
 
 	
-	//nAlignResult00 = pAlignResult->nFindAlign[0] * 1000;//占쏙옙占쏙옙 
-	//nAlignResult01 = pAlignResult->nFindAlign[1] * 1000;//占쏙옙占쏙옙
+	//nAlignResult00 = pAlignResult->nFindAlign[0] * 1000;
+	//nAlignResult01 = pAlignResult->nFindAlign[1] * 1000;
 
 	//nAlignResult00 = pAlignResult->dFindScore[0];
 	//nAlignResult01 = pAlignResult->dFindScore[1];
@@ -7530,7 +7620,6 @@
 		nAlignResult01 = 0;
 	}
 
-	//占식울옙?
 	nReviewAliveCamera00 = ReviewCamera_GetReviewCameraControl(0)->GetConnected() * 1000;
 	nReviewAliveCamera01 = ReviewCamera_GetReviewCameraControl(1)->GetConnected() * 1000;
 
@@ -7547,8 +7636,7 @@
 	{
 		wsprintf(DriveText, TEXT("%C:"), Drive);
 		UINT type = GetDriveType(DriveText);
-		if ((dwDrive & dwDriveCh) && (type == DRIVE_REMOVABLE || type == DRIVE_FIXED || type == DRIVE_RAMDISK)) {
-			// 占싹듸옙酉�         
+		if ((dwDrive & dwDriveCh) && (type == DRIVE_REMOVABLE || type == DRIVE_FIXED || type == DRIVE_RAMDISK)) {        
 			ULARGE_INTEGER i64FreeBytesToCaller = { 0 }, i64TotalBytes = { 0 }, i64FreeBytes = { 0 };
 			BOOL bRsult = GetDiskFreeSpaceEx(DriveText, (PULARGE_INTEGER)&i64FreeBytesToCaller, (PULARGE_INTEGER)&i64TotalBytes, (PULARGE_INTEGER)&i64FreeBytes);
 			if (bRsult) {
@@ -7762,7 +7850,7 @@
 	pSignalControl->WritePacketData(_T("15100"), sizeof(DVDataPack_CPJT), (short*)&DVData);*/
 }
 
-//#3358 KYH FDC 占쏙옙占쏙옙占쏙옙 占쏙옙占쏙옙 占쏙옙占쏙옙 占쏙옙占쏙옙 ADD START
+//#3358 KYH FDC ADD START
 void CSequenceProcessor_CPJT::MakeDVData2()
 {
 
@@ -7775,9 +7863,9 @@
 	}
 	else
 	{
-	// Review 占쏙옙占쏙옙 占쏙옙占쏙옙
+	// Review 
 		pReviewLightInfo = pRsRcpReviewInfo->GetRcpLightInfo(0);
-	// Review AFM 占쏙옙占쏙옙
+	// Review AFM
 		pReviewAFMInfo = pRsRcpReviewInfo->GetRcpAFMRecipeInfo(0);
 	}
 
@@ -7801,7 +7889,7 @@
 
 
 
-	// Review 占쏙옙占쏙옙 占쏙옙占쏙옙
+	// Review
 	const CModuleStatus* pModuleStatus = Module_GetModuleStatus(0);
 	const SMagnificInfo* pSMagnificInfo = NULL;
 	if (pModuleStatus == NULL)
@@ -7903,8 +7991,8 @@
 	//nAlignResult = 1;
 
 
-	//nAlignResult00 = pAlignResult->nFindAlign[0] * 1000;//占쏙옙占쏙옙 
-	//nAlignResult01 = pAlignResult->nFindAlign[1] * 1000;//占쏙옙占쏙옙
+	//nAlignResult00 = pAlignResult->nFindAlign[0] * 1000; 
+	//nAlignResult01 = pAlignResult->nFindAlign[1] * 1000;
 
 	//nAlignResult00 = pAlignResult->dFindScore[0];
 	//nAlignResult01 = pAlignResult->dFindScore[1];
@@ -7944,7 +8032,6 @@
 		nAlignResult01 = 1000;
 	}
 
-	//占식울옙?
 	if (ReviewCamera_GetReviewCameraControl(0) != NULL)
 	{
 		nReviewAliveCamera00 = ReviewCamera_GetReviewCameraControl(0)->GetConnected() * 1000;
@@ -7976,8 +8063,7 @@
 	{
 		wsprintf(DriveText, TEXT("%C:"), Drive);
 		UINT type = GetDriveType(DriveText);
-		if ((dwDrive & dwDriveCh) && (type == DRIVE_REMOVABLE || type == DRIVE_FIXED || type == DRIVE_RAMDISK)) {
-			// 占싹듸옙酉�         
+		if ((dwDrive & dwDriveCh) && (type == DRIVE_REMOVABLE || type == DRIVE_FIXED || type == DRIVE_RAMDISK)) {        
 			ULARGE_INTEGER i64FreeBytesToCaller = { 0 }, i64TotalBytes = { 0 }, i64FreeBytes = { 0 };
 			BOOL bRsult = GetDiskFreeSpaceEx(DriveText, (PULARGE_INTEGER)&i64FreeBytesToCaller, (PULARGE_INTEGER)&i64TotalBytes, (PULARGE_INTEGER)&i64FreeBytes);
 			if (bRsult) {
@@ -8024,7 +8110,7 @@
 
 	return;
 }
-//#3358 KYH FDC 占쏙옙占쏙옙占쏙옙 占쏙옙占쏙옙 占쏙옙占쏙옙 占쏙옙占쏙옙 ADD END
+//#3358 KYH FDC  ADD END
 
 DWORD CSequenceProcessor_CPJT::GetDiskUsage()
 {
@@ -8062,7 +8148,7 @@
 
 	BOOL bResult = FALSE;
 
-	// PCControl D2300 (占싯삼옙 占쏙옙占쏙옙)
+	// PCControl D2300 
 	switch(nSignalIndex)
 	{
 	case PCControlRecv_TimeChange:
@@ -8128,7 +8214,7 @@
  		g_pLog->DisplayMessage(_T("[SequenceProcessor] Success! SetLocalTime(), Current: %04d-%02d-%02d %02d-%02d-%02d, Changed: %04d-%02d-%02d %02d-%02d-%02d"), 
 			CurrentTime.wYear, CurrentTime.wMonth, CurrentTime.wDay, CurrentTime.wHour, CurrentTime.wMinute, CurrentTime.wSecond,
 			ChangedTime.wYear, ChangedTime.wMonth, ChangedTime.wDay, ChangedTime.wHour, ChangedTime.wMinute, ChangedTime.wSecond);
-		// AFM & WSI TIME 占쏙옙占쏙옙화
+		// AFM & WSI TIME
 		SendSystemTime(ChangedTime);
 	} else {
  		g_pLog->DisplayMessage(_T("[SequenceProcessor] Fail! SetLocalTime()"));
@@ -8155,7 +8241,7 @@
 	return TRUE;
 }
 
-// Local System 占쏙옙占쏙옙 占시곤옙占쏙옙 占쏙옙占쏙옙 占쏙옙청 占쏙옙트占싼뤄옙占쏙옙 占시곤옙占쏙옙 처占쏙옙 占쏙옙占쏙옙
+// Local System
 BOOL CSequenceProcessor_CPJT::SendSystemTime(SYSTEMTIME sysTime)
 {
 	SYSTEMTIME CurrentTime;
@@ -8302,7 +8388,7 @@
 			case PCControlSend_Defoucs:
 				m_pSP2P->ISP2P_DisplayMessage(_T("[PCControl_Send] Defoucs! => %d"),0);
 				break;
-			case PCControlSend_Diagnosis: // 0412 占쌘곤옙占쏙옙占쏙옙 占쏙옙호 占쌩곤옙
+			case PCControlSend_Diagnosis: // 0412
 				m_pSP2P->ISP2P_DisplayMessage(_T("[PCControl_Send] Diagnosis! => %d"), 0);
 				break;
 			}
@@ -8413,7 +8499,7 @@
 			case PCControlSend_Defoucs:
 				m_pSP2P->ISP2P_DisplayMessage(_T("[PCControl_Send] Defoucs! => %d"),0);
 				break;
-			case PCControlSend_Diagnosis: // 0412 占쌘곤옙占쏙옙占쏙옙 占쏙옙호 占쌩곤옙
+			case PCControlSend_Diagnosis: // 0412
 				m_pSP2P->ISP2P_DisplayMessage(_T("[PCControl_Send] Diagnosis! => %d"), 0);
 				break;
 			}
@@ -8527,7 +8613,7 @@
 			if (bResult==FALSE) m_pSP2P->ISP2P_DisplayMessage(_T("[PCControl_Mode] Manual Mode Error!"));
 
 			// lmk simul manual camera,motor stop
-			//ReviewCamera_CameraControl(CameraControlStop);	// 占쏙옙占쏙옙 占쏙옙占쌩몌옙 카占쌨띰옙 占쌘듸옙 占쏙옙탑
+			//ReviewCamera_CameraControl(CameraControlStop);
 			CMotorControl*  pMotorControl = m_pSP2P->ISP2P_GetMotorControl();
 			if(pMotorControl)
 				pMotorControl->CommonSetAutoStop();
@@ -8698,10 +8784,10 @@
 
 			if (SetLocalTime(&sTime))
 			{
-				m_pSP2P->ISP2P_DisplayMessage(_T("[PCControl_Signal] 占시곤옙占쏙옙占쏙옙화占쏙옙占쏙옙 %s"), strtime);
+				m_pSP2P->ISP2P_DisplayMessage(_T("[PCControl_Signal] TymeSync Success %s"), strtime);
 			}
 			else
-				m_pSP2P->ISP2P_DisplayMessage(_T("[PCControl_Signal] 占시곤옙占쏙옙占쏙옙화占쏙옙占쏙옙 %s"), strtime);
+				m_pSP2P->ISP2P_DisplayMessage(_T("[PCControl_Signal] TymeSync Fail %s"), strtime);
 
 
 			//memcpy(&time, strTime, 2);
@@ -8716,14 +8802,22 @@
 	break;
 	case PCControlRecv_Autodiagnosis:
 	{
-		m_pSP2P->ISP2P_DisplayMessage(_T("[PCControl_Signal] Diagno start => %d"), bSignalOn);
+		//#3514_LYW_CF AOI Review 占쌘곤옙占쏙옙占쏙옙 占쏙옙占� 占쏙옙占쏙옙_START
+		CSignalControl* pSignalControl = m_pSP2P->ISP2P_GetSignalControl();
+		CString strDiagnosisMode;
+		pSignalControl->ReadData(_T("11160"), 2, strDiagnosisMode);
+		int nDiagnosisMode = atoi(strDiagnosisMode);
+		//#3514_LYW_CF AOI Review 占쌘곤옙占쏙옙占쏙옙 占쏙옙占� 占쏙옙占쏙옙_END
+
+		m_pSP2P->ISP2P_DisplayMessage(_T("[PCControl_Signal] Diagno start => %d, DiagnosisMode => %d"), bSignalOn, nDiagnosisMode);
 		if (bSignalOn) {
 			bResult = SendSignalToSignalControl(PCControlSendSignalIndex_DiagnoAck, 0);
 			
 			m_pSP2P->ISP2P_GetDlgDiagnosis()->ShowWindow(SW_SHOW);
 			
-			m_pSP2P->ISP2P_GetDiagnosisManager()->RecvSignalToSignalControl(0, 0);
+			m_pSP2P->ISP2P_GetDiagnosisManager()->RecvSignalToSignalControl(0, nDiagnosisMode);
 		}
+		//#3514_LYW_CF AOI Review 占쌘곤옙占쏙옙占쏙옙 占쏙옙占� 占쏙옙占쏙옙_END
 		else
 			bResult = SendSignalOffToSignalControl(PCControlSendSignalIndex_DiagnoAck, 0);
 
@@ -8922,7 +9016,6 @@
 	CReviewResult* pWsiMultiShotResult = pGlassResult->GetWsiMultiShotResult(nModuleIndex);
 	if (pWsiMultiShotResult == NULL) goto RESULT_FAIL;
 
-	// 占쏙옙占쏙옙占쏙옙 占싸듸옙占쏙옙占쏙옙 占쏙옙占쏙옙占승댐옙.
 	int nCurResultIdx = pWsiMultiShotResult->GetLastSReviewResultIndex() + 1; // last index + 1
 	int nStartResultIdx = pWsiMultiShotResult->GetStartSReviewResultIndex();
 	int nEndResultIdx = pWsiMultiShotResult->GetEndSReviewResultIndex();
@@ -8936,13 +9029,11 @@
 	int		nMPosY = int(pPosition->dMotorPosY * 1000.0);
 	double	dTime = (double)m_ProcessTimer.GetDurationMilliSecond();
 
-	// 占싸듸옙占쏙옙占쏙옙 占쌕몌옙占쏙옙 占쏙옙占쏙옙占쏙옙占쏙옙.
 	if (measureResut.nResultIndex != nCurResultIdx)
 	{
 		goto RESULT_FAIL;
 	}
 
-	// 占쏙옙占쏙옙 占쏙옙占쏙옙占쏙옙 占쏙옙占쏙옙.
 	// measureResut
 
 	if (pWsiMultiShotResult->GetSReviewResultCount() == 0) return;
@@ -8967,7 +9058,6 @@
 	// set last result idx
 	pWsiMultiShotResult->SetLastSReviewResultIndex(nCurResultIdx);
 
-	// 占쏙옙占쏙옙占쏙옙 占쏙옙占쏙옙트占쏙옙占쏙옙 占쌉곤옙, WSI 占쏙옙占쏙옙占� 占쏙옙占쏙옙 占쏙옙占쏙옙占쏙옙...
 	if (nCurResultIdx == nEndResultIdx && nCurResultIdx <= pWsiMultiShotResult->GetSReviewResultCount())
 	{
 		nStartResultIdx = nCurResultIdx + 1;
@@ -8978,8 +9068,7 @@
 		pWsiMultiShotResult->SetStartSReviewResultIndex(nStartResultIdx);
 		pWsiMultiShotResult->SetEndSReviewResultIndex(nEndResultIdx);
 
-		// 占쏙옙占쏙옙占쏙옙 占쏙옙占쏙옙트 占쏙옙占쏙옙 占쏙옙占쏙옙占쏙옙占쏙옙.
-		::Sleep(3000); // 占쏙옙占쏙옙甄占� 占십쇽옙占쏙옙. 占쏙옙占쏙옙占쏙옙 占쏙옙占쏙옙 占쏙옙占쏙옙.
+		::Sleep(3000);
 	//	Process_RemainWsiPoint(nModuleIndex);
 	}
 
@@ -9045,7 +9134,7 @@
 	if(pGlassResult && pReviewProcessor)
 	{
 		// WsiStart
-		pReviewProcessor->SetJobID(pGlassResult->m_strJobID);	// pGlassResult->m_strGlassID -> pGlassResult->m_strJobID 占쏙옙占쏙옙
+		pReviewProcessor->SetJobID(pGlassResult->m_strJobID);	// pGlassResult->m_strGlassID -> pGlassResult->m_strJobID 
 		pReviewProcessor->SetOperID(pGlassResult->m_strOperID);
 		m_pSP2P->ISP2P_UpdateReviewProcessStatus(ReviewProcessStatus_WSIReflowStart, nPlanIndex);
 
@@ -9081,7 +9170,7 @@
 	if(pGlassResult && pReviewProcessor)
 	{
 		// WsiStart
-		pReviewProcessor->SetJobID(pGlassResult->m_strJobID);	// pGlassResult->m_strGlassID -> pGlassResult->m_strJobID 占쏙옙占쏙옙
+		pReviewProcessor->SetJobID(pGlassResult->m_strJobID);	// pGlassResult->m_strGlassID -> pGlassResult->m_strJobID
 		pReviewProcessor->SetOperID(pGlassResult->m_strOperID);
 		m_pSP2P->ISP2P_UpdateReviewProcessStatus(ReviewProcessStatus_WSIStart, nPlanIndex);
 
@@ -9108,7 +9197,6 @@
 	WSIAllReadySignal(1);
 
 	// send wsi start
-	// 占쏙옙占쏙옙 占쏙옙占쏙옙 
 	if (!WSIMultiShotAllStartSignal())
 	{
 		g_pLog->DisplayMessage(_T("[WSI] WSI MultiShot Start Fail!!"));
@@ -9119,7 +9207,7 @@
 	if (pGlassResult && pReviewProcessor)
 	{
 		// WsiStart
-		pReviewProcessor->SetJobID(pGlassResult->m_strJobID);	// pGlassResult->m_strGlassID -> pGlassResult->m_strJobID 占쏙옙占쏙옙
+		pReviewProcessor->SetJobID(pGlassResult->m_strJobID);	// pGlassResult->m_strGlassID -> pGlassResult->m_strJobID
 		pReviewProcessor->SetOperID(pGlassResult->m_strOperID);
 		m_pSP2P->ISP2P_UpdateReviewProcessStatus(ReviewProcessStatus_WSIMultiShotStart, nPlanIndex);
 
@@ -9182,7 +9270,7 @@
 		int nEndIdx = pWsiResult->GetEndSReviewResultIndex();
 		nEndIdx = min(nEndIdx, (pWsiResult->GetSReviewResultCount()-1)) + 1;		// set End Index 
 
-		// [2017:3:8]-[WEZASW] : CameraOffset 占쏙옙占쏙옙 占쏙옙占쏙옙 (-1~1 => -5~5)
+		// [2017:3:8]-[WEZASW] : CameraOffset (-1~1 => -5~5)
 		double m_dMinOffset = -5.0; 
 		double m_dMaxOffset = 5.0;
 
@@ -9312,7 +9400,6 @@
 		CModuleStatus*					pModuleStatus	= Module_GetModuleStatus(nModuleIdx);		
 		if (pModuleStatus == NULL) continue;
 
-		//占썸돌占신몌옙 占쌍깍옙
 		{
 			double dCollisionPosX = pWsiUserResult->GetCollisionPositionX() / 1000.0;
 			double dCollisionPosY = 0.0;
@@ -9355,7 +9442,7 @@
 		int nEndIdx = pWsiUserResult->GetEndSReviewResultIndex();
 		nEndIdx = min(nEndIdx, (pWsiUserResult->GetSReviewResultCount()-1)) + 1;		// set End Index 
 
-		// [2017:3:8]-[WEZASW] : CameraOffset 占쏙옙占쏙옙 占쏙옙占쏙옙 (-1~1 => -5~5)
+		// [2017:3:8]-[WEZASW] : CameraOffset (-1~1 => -5~5)
 		double m_dMinOffset = -5.0; 
 		double m_dMaxOffset = 5.0;
 
@@ -9458,17 +9545,13 @@
 			}
 		
 		}
-
-		//占쏙옙占쏙옙占쏙옙 占쏙옙占쏙옙 
+ 
 		pWsiMultiShotResult->GetVectorSReviewResult()->clear();
 		int nResultCount = 0;
 		if (m_vecSReviewResult.size()>0)
 		{	
-			//占쏙옙占쏙옙占쌕몌옙 占쏙옙占쏙옙 占쏙옙占� 占쏙옙占쏙옙占쏙옙占쏙옙킷占� 占쏙옙 占쏙옙占쏙옙殮占� 占쏙옙占쏙옙
 			for(int i=0; i< m_vecSReviewResult.size(); i++)
-			{
-				//占쏙옙占쏙옙占쏙옙 占쏙옙占시울옙 占쏙옙占쏙옙 占쏙옙占쏙옙 占쌉뤄옙占쌔야듸옙 占쌓것몌옙큼 占쏙옙占쏙옙占쏙옙!
-				//占쏙옙占쏙옙占쏙옙 WSI FOV 4占쏙옙占쏙옙 占쏙옙占쌔울옙占쏙옙 占쏙옙占쏙옙 
+			{ 
 				double dOringinX = m_vecSReviewResult[i].nUMOriginX;
 				double dOringinY = m_vecSReviewResult[i].nUMOriginY;
 
@@ -9737,8 +9820,6 @@
 		CModuleStatus*					pModuleStatus = Module_GetModuleStatus(nModuleIdx);
 		if (pModuleStatus == NULL) continue;
 
-
-		//占썸돌占신몌옙 占쌍깍옙
 		{
 
 			double dCollisionPosX = pWsiMultiShotResult->GetCollisionPositionX() / 1000.0;
@@ -9766,7 +9847,7 @@
 			int nEndIdx = pWsiMultiShotResult->GetEndSReviewResultIndex();
 			nEndIdx = min(nEndIdx, (pWsiMultiShotResult->GetSReviewResultCount() - 1)) + 1;		// set End Index 
 
-			// [2017:3:8]-[WEZASW] : CameraOffset 占쏙옙占쏙옙 占쏙옙占쏙옙 (-1~1 => -5~5)
+			// [2017:3:8]-[WEZASW] : CameraOffset (-1~1 => -5~5)
 			double m_dMinOffset = -5.0;
 			double m_dMaxOffset = 5.0;
 
@@ -10207,7 +10288,7 @@
 	CRsRcpReviewInfo* pRsRcpReviewInfo = m_pSP2P->ISP2P_Recipe_GetRsRcpReviewInfo();
 	if(pRsRcpReviewInfo == NULL)	return FALSE;
 
-	if(pRsRcpReviewInfo->GetRcpUserDefectInfoCount() < 1)	return TRUE;		// 占쏙옙占쏙옙占쏙옙占쏙옙 카占쏙옙트占쏙옙 占쏙옙占쌕몌옙 占싼어가占쏙옙
+	if(pRsRcpReviewInfo->GetRcpUserDefectInfoCount() < 1)	return TRUE;
 
 	double dCenterPosX, dCenterPosY;
 	
@@ -10266,18 +10347,18 @@
 	_grmGlassData* pSharedGlassData = pDitSharedGlassRaw->GetGlassData();
 	if(pSharedGlassData == NULL) return FALSE;
 
-	//pSharedGlassData->m_nUserReviewNum = 0; //占쏙옙占쏙옙 占쌨몌옙 User plan 
+	//pSharedGlassData->m_nUserReviewNum = 0; // User plan 
 
 	_grmDefectData* pSharedDefect;
-	int nPointCount = pRecipeinfo->GetRcpUserDefectInfoCount(); // User 占쏙옙표 占쏙옙 카占쏙옙트
+	int nPointCount = pRecipeinfo->GetRcpUserDefectInfoCount(); 
 
-	int nSharedDefectNum = pSharedGlassData->m_nDefectNum; // 占쏙옙占쏙옙 占싼곤옙占쏙옙 User Idx 占쏙옙 첫占쏙옙째 Index 占쏙옙 占싫댐옙
-	int nStartIdx=nSharedDefectNum;// USER 占쏙옙占쏙옙 占쏙옙占쏙옙 IDX 占싸울옙占싹깍옙 占쏙옙占쏙옙 占쏙옙占쏙옙占쏙옙 
+	int nSharedDefectNum = pSharedGlassData->m_nDefectNum; 
+	int nStartIdx=nSharedDefectNum;
 
-	CRcpPlanInfo* pRcpPlanInfo; // 占쏙옙占쏙옙占쏙옙 占쏙옙占쏙옙
-	CRcpUserDefectInfo *pDefectInfo;// 占쏙옙占쏙옙占쏙옙 defect 占쏙옙占쏙옙 
+	CRcpPlanInfo* pRcpPlanInfo;
+	CRcpUserDefectInfo *pDefectInfo;
 	
-	int nInsepectionType;// User 타占쏙옙 Reviewreflow = 0 wsiReflow =1; REV&WSI =2; WSIUSEr =3; USER =4; 
+	int nInsepectionType;// User Reviewreflow = 0 wsiReflow =1; REV&WSI =2; WSIUSEr =3; USER =4; 
 
 	int nCount = 0;
 
@@ -10341,7 +10422,7 @@
 
 BOOL CSequenceProcessor_CPJT::CompareRevType(int nInsType,int nRevType)
 {
-	//Plan 타占쌉곤옙 InspectionMode 占쏙옙 
+	//Plan InspectionMode 
 	if(nRevType == CPJT_PlanUser)
 	{
 	  if(nInsType == USER) return TRUE;
@@ -10399,7 +10480,7 @@
 	CString strMessage, strResultFilePath, strUploadResultFilePath, strLocalRawPath;
 	CString	strUploadRawPath, strUploadImagePath, strAOIRawFileName, strAOIRawFilePath;
 
-	//3-1. 占쏙옙占쏙옙 占쏙옙占� 占쏙옙占쏙옙 占쏙옙占쏙옙
+	//3-1.
 	m_pSP2P->ISP2P_SetReviewResultData(pGlassResult);
 
 	strLocalRawPath		= pNetworkInfo->m_strLocalRawPath;
@@ -10426,7 +10507,7 @@
 
 			if(strUploadRawPath.IsEmpty() == FALSE && strAOIRawFilePath.IsEmpty() == FALSE)
 			{
-				// [2017:5:16]-[WEZASW] : 占쏙옙占쏙옙 PASS占쏙옙占쏙옙 占쏙옙占쏙옙 占쏘영占쏙옙 占쏙옙황占쏙옙 占쏙옙占쏙옙 AOI Server占쏙옙 RAW 占쏙옙占쏙옙 占쏙옙占쏙옙 占쏙옙占싸듸옙 占쏙옙占쏙옙.
+				// [2017:5:16]-[WEZASW] :
 				strUploadResultFilePath.Format(_T("%s\\%s"), strUploadRawPath, strAOIRawFileName);
 
 				if(CopyFile(strResultFilePath, strUploadResultFilePath, FALSE))
@@ -10447,9 +10528,9 @@
 	}
 
 	// delete file of Glass direction
-	DeleteFile(pNetworkInfo->m_strAOIRawPath + _T("\\") + pGlassResult->m_strJobID + _T("TD"));//pGlassResult->m_strGlassID -> m_StrJobID 占쏙옙占쏙옙
+	DeleteFile(pNetworkInfo->m_strAOIRawPath + _T("\\") + pGlassResult->m_strJobID + _T("TD"));//pGlassResult->m_strGlassID -> m_StrJobID
 
-	// [2017:4:11]-[WEZASW] :CIM(DV Data) 占쏙옙占쏙옙 占쌓몌옙 占쌩곤옙.
+	// [2017:4:11]-[WEZASW] :CIM(DV Data)
 	if (SendDVDataToSignalControl()==FALSE) 
 	{
 		m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::ReviewEnd] DV Data Send FAIL!"));			
@@ -10469,8 +10550,6 @@
 
 BOOL CSequenceProcessor_CPJT::MoveReviewStartMotorPosition(CGlassResult* pGlassResult,int nReviewType)
 {
-	//혹占시놂옙 占쏙옙占싹깍옙占� 占쏙옙占쌤듸옙 
-	//占쏙옙占쏙옙 占시뤄옙占쏙옙 첫占쏙옙째 占쏙옙치占쏙옙 占싱듸옙
 	
 	double dDefectPosX,dDefectPosY = 0;
 	
@@ -10534,7 +10613,7 @@
 
 void CSequenceProcessor_CPJT::SendWsiErrorAlarm_CPJT(int Index) //190801 chm
 {	
-	//wsi 占쏙옙占쏙옙 占싯띰옙
+	//wsi
 	if(Index==1)
 	{
 		g_pLog->DisplayMessage(_T("[SequenceProcessor_CPJT] WSI Alive Error!!!"));
@@ -10548,7 +10627,7 @@
 
 void CSequenceProcessor_CPJT::SendWsiAlive_CPJT()//190801 chm
 {
-	//WSI Alive 占쏙옙호 占쏙옙占쏙옙
+	//WSI Alive 
 	SetWSIAliveCheck(TRUE);
 }
 
@@ -10574,7 +10653,7 @@
 			if(bWsiAliveCheck ==FALSE){
 				m_pCSPC->SendWsiErrorAlarm_CPJT(1);
 			}
-			bWsiAliveCheck=FALSE; //30占십울옙 占싼뱄옙占쏙옙 0占쏙옙占쏙옙 占십깍옙화
+			bWsiAliveCheck=FALSE;
 
 		}
 	}

--
Gitblit v1.9.3