From 6c48319c60c4eb6ad4ff3631f5caa6b297d2e787 Mon Sep 17 00:00:00 2001
From: LYW <leeyeanwoo@diteam.co.kr>
Date: 수, 18 8월 2021 09:06:18 +0900
Subject: [PATCH] Merge branch 'feature/#3561_CF_AOI_Review_Align_카메라_끊김_현상_조치' into feature/#3562_CF_AOI_Review_실행_프로그램_경로_변경

---
 ReviewSystem/ReviewSystem/ReviewSystem.rc                  |    7 
 ReviewSystem/ReviewSystem/DisplayMessage.cpp               |   17 +
 ReviewSystem/ReviewSystem/SequenceProcessor_CPJT.h         |    1 
 ReviewSystem/ReviewSystem/SequenceProcessor.h              |   15 +
 ReviewSystem/ReviewSystem/DlgControl.h                     |    1 
 ReviewSystem/ReviewSystem/ReviewInterface.cpp              |    4 
 ReviewSystem/M_AutoDiagnosisManager/DiagnosisProcessor.cpp |   21 ++
 ReviewSystem/ReviewSystem/SequenceProcessor_CPJT.cpp       |  292 +++++++++++++++++++++++++++++++++--------
 ReviewSystem/ReviewSystem/SequenceProcessor.cpp            |    4 
 ReviewSystem/ReviewSystem/resource.h                       |    1 
 ReviewSystem/ReviewSystem/ReviewProcessor_CPJT.cpp         |   16 +-
 ReviewSystem/ReviewSystem/DlgControl.cpp                   |   28 +++
 ReviewSystem/ReviewRecipeEditor/DlgReview.cpp              |    3 
 13 files changed, 322 insertions(+), 88 deletions(-)

diff --git a/ReviewSystem/M_AutoDiagnosisManager/DiagnosisProcessor.cpp b/ReviewSystem/M_AutoDiagnosisManager/DiagnosisProcessor.cpp
index de5f5ca..de39519 100644
--- a/ReviewSystem/M_AutoDiagnosisManager/DiagnosisProcessor.cpp
+++ b/ReviewSystem/M_AutoDiagnosisManager/DiagnosisProcessor.cpp
@@ -303,7 +303,7 @@
 			//#3514_LYW_CF AOI Review �옄媛�吏꾨떒 湲곕뒫 媛쒖꽑_START
 			//if (11000 <= GetTickCount() - stTime)
 			//#3514_LYW_CF AOI Review �옄媛�吏꾨떒 湲곕뒫 媛쒖꽑_END
-			if (1000 <= GetTickCount() - stTime)
+			if (1500 <= GetTickCount() - stTime)
 			{
 				break;
 			}
@@ -313,7 +313,7 @@
 		m_pDP2P->IDP2P_SetAFMTracking(nSelModuleIndex, TRUE);
 		//#3514_LYW_CF AOI Review �옄媛�吏꾨떒 湲곕뒫 媛쒖꽑_START
 		//Sleep(1000);
-		Sleep(500);
+		Sleep(1000);
 		//#3514_LYW_CF AOI Review �옄媛�吏꾨떒 湲곕뒫 媛쒖꽑_END
 
 		CString strimagename;
@@ -888,8 +888,21 @@
 
 		for (int nIdx = 0; nIdx < nPanelCount; nIdx++)
 		{
-			const SPositionData* pSettingPos = pSettingResult->GetPositionData_Squareness(nIdx);
-			const SPositionData* pDataPos = pProcessResult->GetPositionData_Squareness(nIdx);
+			//LYW 210811
+			const SPositionData* pSettingPos;
+			const SPositionData* pDataPos;
+
+			if (nSelModuleIndex == 1)
+			{
+				pSettingPos = pSettingResult->GetPositionData_Squareness(nIdx);
+				pDataPos = pProcessResult->GetPositionData_Squareness(nIdx + 3);
+			}
+			else
+			{
+				pSettingPos = pSettingResult->GetPositionData_Squareness(nIdx);
+				pDataPos = pProcessResult->GetPositionData_Squareness(nIdx);
+			}
+			//LYW 210811
 			if (pSettingPos == NULL || pDataPos == NULL) continue;
 
 			dMotorPosX[nIdx] = pSettingPos->dPosX;
diff --git a/ReviewSystem/ReviewRecipeEditor/DlgReview.cpp b/ReviewSystem/ReviewRecipeEditor/DlgReview.cpp
index bc0f3dc..20ef737 100644
--- a/ReviewSystem/ReviewRecipeEditor/DlgReview.cpp
+++ b/ReviewSystem/ReviewRecipeEditor/DlgReview.cpp
@@ -290,7 +290,8 @@
 
 				if(strArrayOption.GetSize() > 0)
 				{
-					strItemText = strArrayOption.GetAt(pRcpPriorityInfo->GetPriorityStackData());
+					//LYW ERR�닔�젙
+					strItemText = strArrayOption.GetAt(pRcpPriorityInfo->GetPriorityGrayData());
 					m_ctrlGridFilterinfo.SetItemText(nRowIdx, nColIdx++, strItemText);
 				}
 			}
diff --git a/ReviewSystem/ReviewSystem/DisplayMessage.cpp b/ReviewSystem/ReviewSystem/DisplayMessage.cpp
index 5e4b4ce..ccacf49 100644
--- a/ReviewSystem/ReviewSystem/DisplayMessage.cpp
+++ b/ReviewSystem/ReviewSystem/DisplayMessage.cpp
@@ -78,13 +78,20 @@
 {
 	va_list list;
 	TCHAR strText[2000] = {0};
+	try
+	{
+		va_start(list, lpstrFormat);
+		_vstprintf_s(strText, lpstrFormat, list);
+		va_end(list);
 
-	va_start(list, lpstrFormat);
-	_vstprintf_s(strText, lpstrFormat, list);
-	va_end(list);
+		CString* pstrLog = new CString(strText);
+		PostThreadMessage(m_ThreadId, WM_DIPLAY_LOG, reinterpret_cast<WPARAM>(pstrLog), 0);
+	}
+	catch (...)
+	{
+		return;
+	}
 
-	CString* pstrLog = new CString(strText);
-	PostThreadMessage(m_ThreadId, WM_DIPLAY_LOG, reinterpret_cast<WPARAM>(pstrLog), 0);
 
 // 	WriteToFile(strText);
 // 
diff --git a/ReviewSystem/ReviewSystem/DlgControl.cpp b/ReviewSystem/ReviewSystem/DlgControl.cpp
index 597a4d5..f3b1718 100644
--- a/ReviewSystem/ReviewSystem/DlgControl.cpp
+++ b/ReviewSystem/ReviewSystem/DlgControl.cpp
@@ -30,6 +30,7 @@
 	m_nMoveAxis			= MoveAxis_Center;
 	m_nGlassGridViewIndex = 0;
 	pDlgContol          = NULL;
+	m_bAlignCamGrab		= FALSE;
 }
 
 #define ENABLE_RADIO_TIMER
@@ -111,6 +112,7 @@
 	ON_BN_CLICKED(IDC_BT_REVIEW_POPUP, &CDlgControl::OnBnClickedBtReviewPopup)
 	ON_BN_CLICKED(IDC_CHECK_USE_SIMULATION, &CDlgControl::OnBnClickedCheckUseSimulation)
 	ON_STN_DBLCLK(IDC_STATIC_MAGNIFICATION, &CDlgControl::OnDblclkStaticMagnification)
+	ON_BN_CLICKED(IDC_BUTTON_ALIGNCAM_GRAB, &CDlgControl::OnBnClickedButtonAligncamGrab)
 END_MESSAGE_MAP()
 
 
@@ -184,6 +186,10 @@
 				m_ctrlButtonColorCtrl.addControl(IDC_BT_REVIEW_POPUP, this);
 
 				m_ctrlButtonColorCtrl.addControl(IDC_CHECK_USE_SIMULATION, this);
+				//#3561 CF AOI Review Align 移대찓�씪 �걡源� �쁽�긽 議곗튂 ADD START
+				m_ctrlButtonColorCtrl.addControl(IDC_BUTTON_ALIGNCAM_GRAB, this);
+				//#3561 CF AOI Review Align 移대찓�씪 �걡源� �쁽�긽 議곗튂 ADD END
+				
 
 
 
@@ -1450,4 +1456,24 @@
 	{
 		(GetDlgItem(IDC_CHECK_USE_SIMULATION))->ShowWindow(SW_SHOW);
 	}
-}
\ No newline at end of file
+}
+
+//#3561 CF AOI Review Align 移대찓�씪 �걡源� �쁽�긽 議곗튂 ADD START
+void CDlgControl::OnBnClickedButtonAligncamGrab()
+{
+	CSequenceProcessor* pSequenceProcessor = m_pDC2P->IRP2P_GetSequenceProcessor();
+	if (pSequenceProcessor == NULL) return;
+	if (m_bAlignCamGrab == FALSE)
+	{
+		pSequenceProcessor->AlignCamera_CameraControl(CameraControlLive);
+		m_bAlignCamGrab = TRUE;
+	}
+	else
+	{
+		pSequenceProcessor->AlignCamera_CameraControl(CameraControlStop);
+		m_bAlignCamGrab = FALSE;
+	}
+	
+	// TODO: �뿬湲곗뿉 而⑦듃濡� �븣由� 泥섎━湲� 肄붾뱶瑜� 異붽��빀�땲�떎.
+}
+//#3561 CF AOI Review Align 移대찓�씪 �걡源� �쁽�긽 議곗튂 ADD END
\ No newline at end of file
diff --git a/ReviewSystem/ReviewSystem/DlgControl.h b/ReviewSystem/ReviewSystem/DlgControl.h
index 2b26c82..8f136ea 100644
--- a/ReviewSystem/ReviewSystem/DlgControl.h
+++ b/ReviewSystem/ReviewSystem/DlgControl.h
@@ -209,4 +209,5 @@
 	afx_msg void OnBnClickedBtReviewPopup();
 	afx_msg void OnBnClickedCheckUseSimulation();
 	afx_msg void OnDblclkStaticMagnification();
+	afx_msg void OnBnClickedButtonAligncamGrab();
 };
diff --git a/ReviewSystem/ReviewSystem/ReviewInterface.cpp b/ReviewSystem/ReviewSystem/ReviewInterface.cpp
index 9c61cf6..7b39956 100644
--- a/ReviewSystem/ReviewSystem/ReviewInterface.cpp
+++ b/ReviewSystem/ReviewSystem/ReviewInterface.cpp
@@ -6525,6 +6525,10 @@
 {
 	if (m_pSequenceProcessor==NULL) return;
 
+	//#3584 210817 LYW CF AOI Review �떆裕щ젅�씠�뀡 湲곕뒫 �젙�긽�솕 ADD START
+	m_pSequenceProcessor->SetSimulationMode(TRUE);
+	//#3584 210817 LYW CF AOI Review �떆裕щ젅�씠�뀡 湲곕뒫 �젙�긽�솕 ADD END
+
 	if (nCommand == -1)		// DBClick Date
 	{
 
diff --git a/ReviewSystem/ReviewSystem/ReviewProcessor_CPJT.cpp b/ReviewSystem/ReviewSystem/ReviewProcessor_CPJT.cpp
index 3c4fe43..95d0eb1 100644
--- a/ReviewSystem/ReviewSystem/ReviewProcessor_CPJT.cpp
+++ b/ReviewSystem/ReviewSystem/ReviewProcessor_CPJT.cpp
@@ -1232,7 +1232,7 @@
 			  m_pRP2P->IRP2P_SetFirstReviewLeft(FALSE);
 			  m_pRP2P->IRP2P_DisplayMessage(_T("FirstReviewLeft FDC FocusValue = %.2f "), dFocusValue);
 
-			  if (dFocusValue < nDefocusValueMin && dFocusValue > nDefocusValueMax)
+			  if (dFocusValue < nDefocusValueMin || dFocusValue > nDefocusValueMax)
 			  {
 				  m_pRP2P->IRP2P_GetSequenceProcessor()->SendSignalToSignalControl(0, 3, 1000);
 			  }
@@ -1247,7 +1247,7 @@
 			  m_pRP2P->IRP2P_SetFirstReviewRight(FALSE);
 			  m_pRP2P->IRP2P_DisplayMessage(_T("FirstReviewRight FDC FocusValue = %.2f "), dFocusValue);
 
-			  if (dFocusValue < nDefocusValueMin && dFocusValue > nDefocusValueMax)
+			  if (dFocusValue < nDefocusValueMin || dFocusValue > nDefocusValueMax)
 			  {
 				  m_pRP2P->IRP2P_GetSequenceProcessor()->SendSignalToSignalControl(0, 3, 1000);
 			  }
@@ -1282,7 +1282,7 @@
 			m_pRP2P->IRP2P_SetFirstReviewLeft(FALSE);
 			m_pRP2P->IRP2P_DisplayMessage(_T("FirstReviewLeft FDC FocusValue = %.2f "), dFocusValue);
 			
-			if (dFocusValue < nDefocusValueMin && dFocusValue > nDefocusValueMax)
+			if (dFocusValue < nDefocusValueMin || dFocusValue > nDefocusValueMax)
 			{
 				m_pRP2P->IRP2P_GetSequenceProcessor()->SendSignalToSignalControl(0, 3, 1000);
 			}
@@ -1298,7 +1298,7 @@
 			m_pRP2P->IRP2P_SetFirstReviewRight(FALSE);
 			m_pRP2P->IRP2P_DisplayMessage(_T("FirstReviewRight FDC FocusValue = %.2f "), dFocusValue);
 
-			if (dFocusValue < nDefocusValueMin && dFocusValue > nDefocusValueMax)
+			if (dFocusValue < nDefocusValueMin || dFocusValue > nDefocusValueMax)
 			{
 				m_pRP2P->IRP2P_GetSequenceProcessor()->SendSignalToSignalControl(0, 3, 1000);
 			}
@@ -1416,7 +1416,7 @@
 					m_pRP2P->IRP2P_SetFirstReviewLeft(FALSE);
 					m_pRP2P->IRP2P_DisplayMessage(_T("FirstReviewLeft FDC FocusValue = %.2f "), dFocusValue);
 
-					if (dFocusValue < nDefocusValueMin && dFocusValue > nDefocusValueMax)
+					if (dFocusValue < nDefocusValueMin || dFocusValue > nDefocusValueMax)
 					{
 						m_pRP2P->IRP2P_GetSequenceProcessor()->SendSignalToSignalControl(0, 3, 1000);
 					}
@@ -1431,7 +1431,7 @@
 					m_pRP2P->IRP2P_SetFirstReviewRight(FALSE);
 					m_pRP2P->IRP2P_DisplayMessage(_T("FirstReviewRight FDC FocusValue = %.2f "), dFocusValue);
 
-					if (dFocusValue < nDefocusValueMin && dFocusValue > nDefocusValueMax)
+					if (dFocusValue < nDefocusValueMin || dFocusValue > nDefocusValueMax)
 					{
 						m_pRP2P->IRP2P_GetSequenceProcessor()->SendSignalToSignalControl(0, 3, 1000);
 					}
@@ -1487,7 +1487,7 @@
 			m_pRP2P->IRP2P_SetFirstReviewLeft(FALSE);
 			m_pRP2P->IRP2P_DisplayMessage(_T("FirstReviewLeft FDC FocusValue = %.2f "), dFocusValue);
 
-			if (dFocusValue < nDefocusValueMin && dFocusValue > nDefocusValueMax)
+			if (dFocusValue < nDefocusValueMin || dFocusValue > nDefocusValueMax)
 			{
 				m_pRP2P->IRP2P_GetSequenceProcessor()->SendSignalToSignalControl(0, 3, 1000);
 			}
@@ -1502,7 +1502,7 @@
 			m_pRP2P->IRP2P_SetFirstReviewRight(FALSE);
 			m_pRP2P->IRP2P_DisplayMessage(_T("FirstReviewRight FDC FocusValue = %.2f "), dFocusValue);
 
-			if (dFocusValue < nDefocusValueMin && dFocusValue > nDefocusValueMax)
+			if (dFocusValue < nDefocusValueMin || dFocusValue > nDefocusValueMax)
 			{
 				m_pRP2P->IRP2P_GetSequenceProcessor()->SendSignalToSignalControl(0, 3, 1000);
 			}
diff --git a/ReviewSystem/ReviewSystem/ReviewSystem.rc b/ReviewSystem/ReviewSystem/ReviewSystem.rc
index a565daf..767a254 100644
--- a/ReviewSystem/ReviewSystem/ReviewSystem.rc
+++ b/ReviewSystem/ReviewSystem/ReviewSystem.rc
@@ -483,9 +483,9 @@
     PUSHBUTTON      "Key Jog 시작",IDC_KEY_JOD_MOVE,207,167,45,17,NOT WS_VISIBLE | NOT WS_TABSTOP
     PUSHBUTTON      "test2",IDC_BUTTON_TEST2,273,167,34,17,NOT WS_VISIBLE
     CTEXT           "Key Jog시작",IDC_KEY_JOG_MOVE,392,160,31,24
-    PUSHBUTTON      "Reduce",IDC_CHECK_UI_REDUCE,436,77,51,17
-    PUSHBUTTON      "Left",IDC_BUTTON_UI_LEFT,436,96,50,17
-    PUSHBUTTON      "Right",IDC_BUTTON_UI_RIGHT1,436,116,50,17
+    PUSHBUTTON      "Reduce",IDC_CHECK_UI_REDUCE,436,73,51,17
+    PUSHBUTTON      "Left",IDC_BUTTON_UI_LEFT,436,92,50,17
+    PUSHBUTTON      "Right",IDC_BUTTON_UI_RIGHT1,436,112,50,17
     CONTROL         "Track",IDC_CHECK_AFM_TRACK,"Button",BS_AUTOCHECKBOX | BS_PUSHLIKE | WS_TABSTOP,369,77,29,57
     LTEXT           "GlassCenter X/Y(mm)",IDC_STATIC,10,105,74,8
     PUSHBUTTON      "Go",IDC_BUTTON_GLASSCENTER_GO_XY,196,101,27,17
@@ -494,6 +494,7 @@
     CONTROL         "OffSet ON",IDC_SELECT_OFFSET_ON,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,418,61,63,10
     PUSHBUTTON      "ReviewPopUp",IDC_BT_REVIEW_POPUP,433,18,54,17
     CONTROL         "Use Simulation",IDC_CHECK_USE_SIMULATION,"Button",BS_AUTOCHECKBOX | NOT WS_VISIBLE | WS_TABSTOP,418,41,66,10
+    PUSHBUTTON      "Align Grab",IDC_BUTTON_ALIGNCAM_GRAB,436,130,50,16
 END
 
 IDD_DLG_MODULE_INFO DIALOGEX 0, 0, 532, 187
diff --git a/ReviewSystem/ReviewSystem/SequenceProcessor.cpp b/ReviewSystem/ReviewSystem/SequenceProcessor.cpp
index 0a4610f..4f11b45 100644
--- a/ReviewSystem/ReviewSystem/SequenceProcessor.cpp
+++ b/ReviewSystem/ReviewSystem/SequenceProcessor.cpp
@@ -83,7 +83,9 @@
 	m_nAlive = 0;
 
 	m_nWsiTotalCount = 0;
-
+	//#3584 210817 LYW CF AOI Review �떆裕щ젅�씠�뀡 湲곕뒫 �젙�긽�솕 ADD START
+	m_bSimulationMode = FALSE;
+	//#3584 210817 LYW CF AOI Review �떆裕щ젅�씠�뀡 湲곕뒫 �젙�긽�솕 ADD END
 	InitializeCriticalSection(&m_csProcessStatus);
 }
 
diff --git a/ReviewSystem/ReviewSystem/SequenceProcessor.h b/ReviewSystem/ReviewSystem/SequenceProcessor.h
index 902ed1b..afe2621 100644
--- a/ReviewSystem/ReviewSystem/SequenceProcessor.h
+++ b/ReviewSystem/ReviewSystem/SequenceProcessor.h
@@ -587,10 +587,16 @@
 	void SetSP2P(ISequenceProcessor2Parent* pSP2P);
 	void SetLineMachineType(int nLineType, int nMachineType, CString strEqpID);
 	void SetDefaultValue();
+	//#3584 210817 LYW CF AOI Review �떆裕щ젅�씠�뀡 湲곕뒫 �젙�긽�솕 ADD START
+	void SetSimulationMode(BOOL bCheck) { m_bSimulationMode = bCheck; };
+	//#3584 210817 LYW CF AOI Review �떆裕щ젅�씠�뀡 湲곕뒫 �젙�긽�솕 ADD END
 
 	// getter
 	int		GetProcessMode() const;
 	int		GetProcessStatus() const;
+	//#3584 210817 LYW CF AOI Review �떆裕щ젅�씠�뀡 湲곕뒫 �젙�긽�솕 ADD START
+	BOOL GetSimulationMode() { return m_bSimulationMode; };
+	//#3584 210817 LYW CF AOI Review �떆裕щ젅�씠�뀡 湲곕뒫 �젙�긽�솕 ADD END
 
 	static int GetDirectionX(int nGlassDirection, int nMotorDirection);
 	static int GetDirectionY(int nGlassDirection, int nMotorDirection);
@@ -614,6 +620,8 @@
 
 	// Review, WSI Stop Siganl
 	BOOL	SetMotionStop();
+	// Align Camera Control command
+	BOOL	AlignCamera_CameraControl(int nControlCmd);
 
 protected:
 	// common
@@ -625,9 +633,6 @@
 	// PCControl Control command
 	BOOL	Signal_SendSignal(int nSignalIndex);
 	BOOL	PCControl_ReadTransferData(STransferData* pTransferData);
-
-	// Align Camera Control command
-	BOOL	AlignCamera_CameraControl(int nControlCmd);
 
 	// Review Camera Control Command
 	void	ReviewCamera_CameraControl(int nControlCmd);
@@ -780,4 +785,8 @@
 	CTime				m_wsiStartTime;
 
 	int					m_nWsiTotalCount;
+
+	//#3584 210817 LYW CF AOI Review �떆裕щ젅�씠�뀡 湲곕뒫 �젙�긽�솕 ADD START
+	BOOL				m_bSimulationMode;
+	//#3584 210817 LYW CF AOI Review �떆裕щ젅�씠�뀡 湲곕뒫 �젙�긽�솕 ADD END
 };
\ No newline at end of file
diff --git a/ReviewSystem/ReviewSystem/SequenceProcessor_CPJT.cpp b/ReviewSystem/ReviewSystem/SequenceProcessor_CPJT.cpp
index b740fb8..8a5933b 100644
--- a/ReviewSystem/ReviewSystem/SequenceProcessor_CPJT.cpp
+++ b/ReviewSystem/ReviewSystem/SequenceProcessor_CPJT.cpp
@@ -547,6 +547,8 @@
 		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!"));
 
@@ -903,6 +905,9 @@
 		break;
 
 	}
+	//#3584 210817 LYW CF AOI Review �떆裕щ젅�씠�뀡 湲곕뒫 �젙�긽�솕 ADD START
+	SetSimulationMode(FALSE);
+	//#3584 210817 LYW CF AOI Review �떆裕щ젅�씠�뀡 湲곕뒫 �젙�긽�솕 ADD END
 	return;
 }
 
@@ -922,10 +927,18 @@
 
 	m_pSP2P->ISP2P_SetFirstReviewLeft(TRUE);
 	m_pSP2P->ISP2P_SetFirstReviewRight(TRUE);
-	
-	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 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!"));	
@@ -995,7 +1008,14 @@
 				{
 					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;
@@ -1040,9 +1060,18 @@
 
 			//占쏙옙占쏙옙占쏙옙트占쏙옙
 
-			//bFileFind = FindRawBinFile(strFileName);
-			bFileFind = TRUE;
-
+			//#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);
@@ -1149,17 +1178,34 @@
 	ReviewCamera_CameraControl(CameraControlStop);	
 	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();
@@ -1187,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!"));
 
@@ -1208,8 +1262,16 @@
 	AlignCamera_CameraControl(CameraControlLive);  // 210805 Align Camera Sequence 占쏙옙占쏙옙
 	Sleep(300);
 
-	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 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();
@@ -1234,11 +1296,20 @@
 	if(pRsRcpAlignInfo->m_bAlignSkipMode)
 	{
 		m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::AlignStart] Align Skip Mode !!!!!!!"));
-
-		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 占쏙옙占쏙옙
@@ -1250,8 +1321,16 @@
 		{
 			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
@@ -1268,11 +1347,21 @@
 		{
 			Sleep(1000);
 			{
-				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 占쏙옙占쏙옙
@@ -1283,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!"));
-	}
+		}
 	}
 
 
@@ -1305,13 +1394,29 @@
 	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] Find Raw File Fail"));
+		//#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;
 	}	
 
@@ -1347,9 +1452,18 @@
 
 		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
 	{
@@ -1377,8 +1491,16 @@
 					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!"));
 				}
 			}
 		}
@@ -1420,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;
@@ -1485,9 +1614,18 @@
 	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
 	{
@@ -1510,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)
@@ -1536,9 +1682,18 @@
 
 	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();
@@ -1602,9 +1757,17 @@
 		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!"));
 }
@@ -1612,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!"));
 	
 }
 
diff --git a/ReviewSystem/ReviewSystem/SequenceProcessor_CPJT.h b/ReviewSystem/ReviewSystem/SequenceProcessor_CPJT.h
index b661869..0be1f0d 100644
--- a/ReviewSystem/ReviewSystem/SequenceProcessor_CPJT.h
+++ b/ReviewSystem/ReviewSystem/SequenceProcessor_CPJT.h
@@ -412,7 +412,6 @@
 	BOOL				m_nGlassCountCheck;
 
 	BOOL				m_bUseAFMHomePosition;
-
 	
 	DWORD dwRevStartTickCount;
 	DWORD dwRevEndTickCount;
diff --git a/ReviewSystem/ReviewSystem/resource.h b/ReviewSystem/ReviewSystem/resource.h
index 4309eef..7659a7c 100644
--- a/ReviewSystem/ReviewSystem/resource.h
+++ b/ReviewSystem/ReviewSystem/resource.h
@@ -111,6 +111,7 @@
 #define IDC_BUTTON_LEFT                 1008
 #define IDC_BUTTON_APPLT_OFFSET         1008
 #define IDC_BUTTON_PROGRAMEXIT          1008
+#define IDC_BUTTON_ALIGNCAM_GRAB        1008
 #define IDC_SPIN2                       1009
 #define IDC_CHECK_REVIEW_PATH2          1009
 #define IDC_CHECK_AUTO_SELECT_CAMERA    1009

--
Gitblit v1.9.3