From 3ab77fdb5f702156c492c7eb4bd1daf25d6fbc56 Mon Sep 17 00:00:00 2001
From: LYW <leeyeanwoo@diteam.co.kr>
Date: 수, 08 9월 2021 17:08:45 +0900
Subject: [PATCH] Ongoing90 #3561 CF AOI Review Align 카메라 끊김 현상 조치

---
 ReviewSystem/ReviewSystem/ReviewInterface.h          |    4 ++++
 ReviewSystem/ReviewSystem/SequenceProcessor.h        |    3 +++
 ReviewSystem/ReviewSystem/ReviewInterface.cpp        |    5 +++++
 ReviewSystem/ReviewSystem/ReviewProcessor_CPJT.cpp   |    2 +-
 ReviewSystem/ReviewSystem/SequenceProcessor_CPJT.cpp |   28 ++++++++++++++++++++++++----
 ReviewSystem/CHReviewResult/GlassResult.cpp          |    4 ++--
 ReviewSystem/ReviewSystem/CameraController.cpp       |   14 ++++++++++++--
 7 files changed, 51 insertions(+), 9 deletions(-)

diff --git a/ReviewSystem/CHReviewResult/GlassResult.cpp b/ReviewSystem/CHReviewResult/GlassResult.cpp
index c682744..1bd0ba3 100644
--- a/ReviewSystem/CHReviewResult/GlassResult.cpp
+++ b/ReviewSystem/CHReviewResult/GlassResult.cpp
@@ -312,8 +312,8 @@
 
 	//FDC보고용 Review Contrast
 	//#3524_210723_LYW_CF AOI Review 디포커스 알람 추가 및 FDC 보고 방식 개선 MOD Start
-	nReview00ImageContrast = 50;
-	nReview01ImageContrast = 50;
+	nReview00ImageContrast = 5;
+	nReview01ImageContrast = 5;
 	//#3524_210723_LYW_CF AOI Review 디포커스 알람 추가 및 FDC 보고 방식 개선 MOD End
 	//// defect result
 	//for (MapDefectResultIt it = m_mapDefectResult.begin(); it != m_mapDefectResult.end(); it++)
diff --git a/ReviewSystem/ReviewSystem/CameraController.cpp b/ReviewSystem/ReviewSystem/CameraController.cpp
index 85863ca..be17e12 100644
--- a/ReviewSystem/ReviewSystem/CameraController.cpp
+++ b/ReviewSystem/ReviewSystem/CameraController.cpp
@@ -268,9 +268,19 @@
 	
 	for (VectorCameraControlIt it=m_vecCameraControl.begin(); it!=m_vecCameraControl.end(); it++)
 	{
-		(*it)->SetTriggerMode(ModeInternal);
 
-		int nSub = (*it)->Grab();
+		//#3561 210908 LYW ADD Start
+		int nSub;
+		try
+		{
+			(*it)->SetTriggerMode(ModeInternal);
+			nSub = (*it)->Grab();
+		}
+		catch (...)
+		{
+			nSub = FALSE;
+		}
+		//#3561 210908 LYW ADD End
 
 		if (nSub==1)
 			g_pLog->DisplayMessage(_T("[CameraController]Camera_Grab Success![ModeInternal]"));
diff --git a/ReviewSystem/ReviewSystem/ReviewInterface.cpp b/ReviewSystem/ReviewSystem/ReviewInterface.cpp
index 7b39956..7e3e007 100644
--- a/ReviewSystem/ReviewSystem/ReviewInterface.cpp
+++ b/ReviewSystem/ReviewSystem/ReviewInterface.cpp
@@ -8934,6 +8934,11 @@
 	SetCurrentWsiMode(nMode);
 }
 
+void CReviewInterface::ISP2P_InitAlignCamera()
+{
+	InitAlignCamera();
+}
+
 int CReviewInterface::IWC2P_GetWsiType()
 {
 	return GetCurrentWsiMode();
diff --git a/ReviewSystem/ReviewSystem/ReviewInterface.h b/ReviewSystem/ReviewSystem/ReviewInterface.h
index 1d6e241..fce141e 100644
--- a/ReviewSystem/ReviewSystem/ReviewInterface.h
+++ b/ReviewSystem/ReviewSystem/ReviewInterface.h
@@ -297,6 +297,10 @@
 
 	virtual	void						ISP2P_SetCurrentWsiMode(int nMode);
 
+	//#3561 210908 LYW ADD Start
+	virtual void	ISP2P_InitAlignCamera();
+	//#3561 210908 LYW ADD End
+
 	virtual CTotalPitchMeasure*			ISP2P_GetTotalPitchMeasure();
 
 	// recipe info
diff --git a/ReviewSystem/ReviewSystem/ReviewProcessor_CPJT.cpp b/ReviewSystem/ReviewSystem/ReviewProcessor_CPJT.cpp
index e5c5bcf..7753de9 100644
--- a/ReviewSystem/ReviewSystem/ReviewProcessor_CPJT.cpp
+++ b/ReviewSystem/ReviewSystem/ReviewProcessor_CPJT.cpp
@@ -3831,7 +3831,7 @@
 			dXValue = float((pImageBufferByte[nH*nWidth + nW + nStep] - pImageBufferByte[nH*nWidth + nW])*(pImageBufferByte[nH*nWidth + nW + nStep] - pImageBufferByte[nH*nWidth + nW]));
 			dYValue = float((pImageBufferByte[(nH + nStep)*nWidth + nW] - pImageBufferByte[nH*nWidth + nW])*(pImageBufferByte[(nH + nStep)*nWidth + nW] - pImageBufferByte[nH*nWidth + nW]));
 			dCurr = sqrt(dXValue + dYValue);
-			break;
+			//break;
 
 			dSum += dCurr;
 		}
diff --git a/ReviewSystem/ReviewSystem/SequenceProcessor.h b/ReviewSystem/ReviewSystem/SequenceProcessor.h
index afe2621..b7ca4e8 100644
--- a/ReviewSystem/ReviewSystem/SequenceProcessor.h
+++ b/ReviewSystem/ReviewSystem/SequenceProcessor.h
@@ -370,6 +370,9 @@
 
 
 	virtual	void	ISP2P_SetCurrentWsiMode(int nMode) = 0;
+	//#3561 210908 LYW ADD Start
+	virtual void	ISP2P_InitAlignCamera() = 0;
+	//#3561 210908 LYW ADD End
 
 	// system info
 	virtual const CSystemInfo*			ISP2P_System_GetSystemInfo() = 0;
diff --git a/ReviewSystem/ReviewSystem/SequenceProcessor_CPJT.cpp b/ReviewSystem/ReviewSystem/SequenceProcessor_CPJT.cpp
index 8a5933b..1690034 100644
--- a/ReviewSystem/ReviewSystem/SequenceProcessor_CPJT.cpp
+++ b/ReviewSystem/ReviewSystem/SequenceProcessor_CPJT.cpp
@@ -1258,10 +1258,6 @@
 {
  	m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::IN] AlignStart!"));
 
-	
-	AlignCamera_CameraControl(CameraControlLive);  // 210805 Align Camera Sequence 占쏙옙占쏙옙
-	Sleep(300);
-
 	//#3584 210817 LYW CF AOI Review �떆裕щ젅�씠�뀡 湲곕뒫 �젙�긽�솕 MOD START
 	if (GetSimulationMode() == FALSE)
 	{
@@ -1269,6 +1265,30 @@
 			m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::AlignStart] Send Align Start Ack!"));
 	}
 	//#3584 210817 LYW CF AOI Review �떆裕щ젅�씠�뀡 湲곕뒫 �젙�긽�솕 MOD END
+
+	//#3561 210908 LYW ADD Start
+ 	int nAlignReconnectRetryMaxCount = 3;
+ 	for (int i = 0; i < nAlignReconnectRetryMaxCount; i++)
+	{
+		if (AlignCamera_CameraControl(CameraControlLive) == FALSE)
+		{
+			m_pSP2P->ISP2P_DisplayMessage(_T("[AlignStart] AlignConnect Fail! Reconect Start! ReconnectRetry count = %d"), nAlignReconnectRetryMaxCount + 1);
+			system("netsh interface set interface name = \"Align #1\" admin = disable&& netsh interface set interface name = \"Align #1\" admin = enable&& netsh interface set interface name = \"Align #2\" admin = disable&& netsh interface set interface name = \"Align #2\" admin = enable");
+			Sleep(10000);
+			m_pSP2P->ISP2P_InitAlignCamera();
+		}
+
+		else
+		{
+			m_pSP2P->ISP2P_DisplayMessage(_T("[AlignStart] AlignConnect Success! "));
+			break;
+		}
+
+	}
+	//#3561 210908 LYW ADD End
+
+	Sleep(300);
+
 	//original
 // 	if (SendSignalToSignalControl(PCControlSendSignalIndex_Ack, PCControlSend_AlignStartAck_CPJT))
 // 		m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::AlignStart] Send Align Start Ack!"));

--
Gitblit v1.9.3