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/M_AutoDiagnosisManager/DiagnosisProcessor.cpp |  282 +++++++++++++++++++++++++++++++++++++++----------------
 1 files changed, 198 insertions(+), 84 deletions(-)

diff --git a/ReviewSystem/M_AutoDiagnosisManager/DiagnosisProcessor.cpp b/ReviewSystem/M_AutoDiagnosisManager/DiagnosisProcessor.cpp
index ad4b0c8..de39519 100644
--- a/ReviewSystem/M_AutoDiagnosisManager/DiagnosisProcessor.cpp
+++ b/ReviewSystem/M_AutoDiagnosisManager/DiagnosisProcessor.cpp
@@ -50,6 +50,8 @@
 {
 	if (pParameter == NULL) return;
 
+	CString strMessage = "";
+
 	CDiagnosisProcessData* pProcessData = static_cast<CDiagnosisProcessData*>(pParameter);
 	int nProcessMode = pProcessData->nProcessMode;
 
@@ -60,20 +62,69 @@
 		m_pManager->m_bProcessAll = true;
 		ProcessAll();
 		break;
+		//#3514_LYW_CF AOI Review �옄媛�吏꾨떒 湲곕뒫 媛쒖꽑_START
+	case DiagnosisMode_Review :
+		strMessage.Format(_T("[CDiagnosisProcessor] DiagnosisMode_Review START"));
+		m_pDP2P->IDP2P_DisplayMessage(0, strMessage);
+
+		m_pManager->m_bProcessAll = false;
+		if (IsCommandStop()) return;
+		m_pDP2P->IDP2P_SetDialogTap(0);
+		ProcessSquareness();
+		Sleep(1000);
+		if (IsCommandStop()) return;
+		m_pDP2P->IDP2P_SetDialogTap(1);
+		ProcessFlatness();
+		Sleep(1000);
+
+		if (ProcessDiagnosisJudge(nProcessMode) == FALSE) {
+			strMessage.Format(_T("[CDiagnosisProcessor] DiagnosisJudge FAIL"));
+			m_pDP2P->IDP2P_DisplayMessage(0, strMessage);
+		}
+
+		strMessage.Format(_T("[CDiagnosisProcessor] DiagnosisMode_Review END"));
+		m_pDP2P->IDP2P_DisplayMessage(0, strMessage);
+
+		break;
+
+	case DiagnosisMode_Wsi:
+		strMessage.Format(_T("[CDiagnosisProcessor] DiagnosisMode_WSI START"));
+		m_pDP2P->IDP2P_DisplayMessage(0, strMessage);
+
+		m_pManager->m_bProcessAll = false;
+		if (IsCommandStop()) return;
+		m_pDP2P->IDP2P_UpdateDialog(7);
+		ProcessWsi();
+		Sleep(1000);
+
+		if (ProcessDiagnosisJudge(nProcessMode) == FALSE) {
+			strMessage.Format(_T("[CDiagnosisProcessor] DiagnosisJudge FAIL"));
+			m_pDP2P->IDP2P_DisplayMessage(0, strMessage);
+		}
+
+		strMessage.Format(_T("[CDiagnosisProcessor] DiagnosisMode_WSI END"));
+		m_pDP2P->IDP2P_DisplayMessage(0, strMessage);
+
+		break;
 
 	case DiagnosisMode_Squareness:
 		m_pManager->m_bProcessAll = false;
 		ProcessSquareness();
+		Sleep(1000);
+		if (ProcessDiagnosisJudge(nProcessMode) == FALSE) {
+			strMessage.Format(_T("[CDiagnosisProcessor] DiagnosisJudge FAIL"));
+			m_pDP2P->IDP2P_DisplayMessage(0, strMessage);
+		}
 		break;
-
-	case DiagnosisMode_Wsi:
-		m_pManager->m_bProcessAll = false;
-		ProcessWsi();
-		break;
-
+		//#3514_LYW_CF AOI Review �옄媛�吏꾨떒 湲곕뒫 媛쒖꽑_END
 	case DiagnosisMode_Flatness:
 		m_pManager->m_bProcessAll = false;
 		ProcessFlatness();
+		Sleep(1000);
+		if (ProcessDiagnosisJudge(nProcessMode) == FALSE) {
+			strMessage.Format(_T("[CDiagnosisProcessor] DiagnosisJudge FAIL"));
+			m_pDP2P->IDP2P_DisplayMessage(0, strMessage);
+		}
 		break;
 
 	case DiagnosisMode_Flatness_Manual:
@@ -94,6 +145,8 @@
 int CDiagnosisProcessor::ProcessAll()
 {
 	if (IsCommandStop()) return 1;
+
+	CString strMessage = "";
 	
 	m_pDP2P->IDP2P_UpdateDialog(7);//WSI Result 移� 珥덇린�솕 
 	//if (m_pDP2P == NULL) return 0;
@@ -114,53 +167,16 @@
 	m_pDP2P->IDP2P_SetDialogTap(1);
     ProcessFlatness();
 
-	Sleep(2000);
+	//#3514_LYW_CF AOI Review �옄媛�吏꾨떒 湲곕뒫 媛쒖꽑_START
+	//Sleep(2000);
+	Sleep(1000);
 
-	//#3407 KYH �옄媛�吏꾨떒 Judge �뙋�젙 諛� �븣�엺 諛쒖깮 湲곕뒫 ADD START
-	for (int i = 0; i < 2; i++)
-	{
-		int nSelModuleIndex = i;
-
-		CDiagnosisInfo* pSettingInfo = m_pManager->GetDiagnosisInfo();
-		if (pSettingInfo == NULL) {
-			m_pDP2P->IDP2P_UpdateDialog(4);
-			return 0;
-		}
-
-		CDiagnosisResult* pProcessResult = m_pManager->GetDiagnosisResult_Squareness(nSelModuleIndex); // 0412 kyh 吏곴컖�룄 痢≪젙 紐⑤뱢�뿉 ���븳 寃곌낵�젙蹂�
-		if (pProcessResult == NULL) {
-			m_pDP2P->IDP2P_UpdateDialog(4);
-			return 0;
-		}
-
-		CDiagnosisResult* pProcessWSIResult = m_pManager->GetDiagnosisResult_Wsi(nSelModuleIndex); // 0412 kyh WSI 痢≪젙 紐⑤뱢�뿉 ���븳 寃곌낵 �젙蹂�
-		if (pProcessWSIResult == NULL) {
-			m_pDP2P->IDP2P_UpdateDialog(6);
-			return 0;
-		}
-
-		CString strMessage = _T("");
-
-		double dDate = (90 - pProcessResult->GetGantryDegree());
-		if (abs(dDate) >= abs(pSettingInfo->GetJudgeData_Degree())) // 0412 kyh 吏곴컖�룄�뿉�꽌 �굹�삩 Dgree 媛믪씠 �꽕�젙�븳 Judge 媛믩낫�떎 �겕嫄곕굹 媛숈쓣寃쎌슦
-		{
-			
-			m_pDP2P->IDP2P_DiagnosisSendJudgeAlarm(); // �븣�엺 諛쒖깮
-			strMessage.Format(_T("[Judge Data] [Gantry %d]Diagnosis Error ! GantryDegree[%lf] Judge[%lf]"), i, dDate, pSettingInfo->GetJudgeData_Degree());
-			m_pDP2P->IDP2P_DisplayMessage(0, strMessage);
-		}
-
-		if (pProcessWSIResult->getWSI_RTB() >= pSettingInfo->GetJudgeData_3Sigma() || pProcessWSIResult->getWSI_RTB() <= 0) // 0412 kyh WSI �몴以��렪李� 鍮꾧탳
-		{
-			m_pDP2P->IDP2P_DiagnosisSendJudgeAlarm(); // �븣�엺 諛쒖깮
-			strMessage.Format(_T("[Judge Data] [WSI %d]Diagnosis Error ! WSI RTB[%lf] Judge[%lf]"), i, pProcessWSIResult->getWSI_RTB(), pSettingInfo->GetJudgeData_3Sigma());
-			m_pDP2P->IDP2P_DisplayMessage(0, strMessage);
-		}
+	if (ProcessDiagnosisJudge(DiagnosisMode_All) == FALSE) {
+		strMessage.Format(_T("[CDiagnosisProcessor] DiagnosisJudge FAIL"));
+		m_pDP2P->IDP2P_DisplayMessage(0, strMessage);
 	}
-	//#3407 KYH �옄媛�吏꾨떒 Judge �뙋�젙 諛� �븣�엺 諛쒖깮 湲곕뒫 ADD END
+	//#3514_LYW_CF AOI Review �옄媛�吏꾨떒 湲곕뒫 媛쒖꽑_START
 
-	//而댄뵆由욱듃 �떊�샇 蹂대궡湲�
-	m_pDP2P->IDP2P_DiagnosisSendCompleteSig();
 	m_pManager->m_bProcessAll = false;
 
 	return 1;
@@ -284,7 +300,10 @@
 		int stTime = GetTickCount();
 		while (1)
 		{
-			if (11000 <= GetTickCount() - stTime)
+			//#3514_LYW_CF AOI Review �옄媛�吏꾨떒 湲곕뒫 媛쒖꽑_START
+			//if (11000 <= GetTickCount() - stTime)
+			//#3514_LYW_CF AOI Review �옄媛�吏꾨떒 湲곕뒫 媛쒖꽑_END
+			if (1500 <= GetTickCount() - stTime)
 			{
 				break;
 			}
@@ -292,14 +311,22 @@
 
 		}
 		m_pDP2P->IDP2P_SetAFMTracking(nSelModuleIndex, TRUE);
+		//#3514_LYW_CF AOI Review �옄媛�吏꾨떒 湲곕뒫 媛쒖꽑_START
+		//Sleep(1000);
 		Sleep(1000);
+		//#3514_LYW_CF AOI Review �옄媛�吏꾨떒 湲곕뒫 媛쒖꽑_END
 
 		CString strimagename;
 		strimagename.Format(_T("%s_Module[%d]Index[%d].bmp"), m_pManager->m_strResultImageFileName, nSelModuleIndex, nIdx);
 
+
 		// find mark at panel
 		double dFindPixX = 0., dFindPixY = 0.;
-		if (m_pDP2P->IDP2P_FindPanelCenter(nSelModuleIndex, dFindPixX, dFindPixY, strimagename) == FALSE) continue;
+		if (m_pDP2P->IDP2P_FindPanelCenter(nSelModuleIndex, dFindPixX, dFindPixY, strimagename) == FALSE) {
+			strMessage.Format(_T("[CDiagnosisProcessor] find mark at panel FAIL"));
+			m_pDP2P->IDP2P_DisplayMessage(0, strMessage);
+			continue;
+		}
 
 		m_pDP2P->IDP2P_SetAFMTracking(nSelModuleIndex, FALSE);
 
@@ -435,7 +462,10 @@
 		}
 		m_pDP2P->IDP2P_SetWsiManualMeasure(nSelModuleIndex, dXpos, dYpos);
 		// move panel
-		Sleep(2000);
+		//#3514_LYW_CF AOI Review �옄媛�吏꾨떒 湲곕뒫 媛쒖꽑_START
+		//Sleep(2000);
+		Sleep(1000);
+		//#3514_LYW_CF AOI Review �옄媛�吏꾨떒 湲곕뒫 媛쒖꽑_END
 		m_pDP2P->IDP2P_MotorGo(nSelModuleIndex, dXpos, dYpos);
 
 		if (m_pDP2P->IDP2P_IsGantryMotionEnd(nSelModuleIndex) == FALSE)
@@ -447,7 +477,10 @@
 		int stTime = GetTickCount();
 		while (1)
 		{
-			if (10000 <= GetTickCount() - stTime)
+			//#3514_LYW_CF AOI Review �옄媛�吏꾨떒 湲곕뒫 媛쒖꽑_START
+			//if (10000 <= GetTickCount() - stTime)
+			if (11000 <= GetTickCount() - stTime)
+			//#3514_LYW_CF AOI Review �옄媛�吏꾨떒 湲곕뒫 媛쒖꽑_END
 			{
 				break;
 			}
@@ -508,8 +541,18 @@
 {
 	if (m_pDP2P == NULL || m_pManager == NULL) return 0;
 
+	CString strMessage = "";
+
 	CDiagnosisInfo * pSettingInfo = m_pManager->GetDiagnosisInfo();
 	if (pSettingInfo == NULL) return 0;
+	//#3514_LYW_CF AOI Review �옄媛�吏꾨떒 湲곕뒫 媛쒖꽑_START
+	if (pSettingInfo->GetFlastnessSkipMode() == TRUE) {
+		strMessage.Format(_T("[CDiagnosisProcessor] FlastnessSkipMode!"));
+		m_pDP2P->IDP2P_DisplayMessage(0, strMessage);
+		return 0;
+	}
+
+	//#3514_LYW_CF AOI Review �옄媛�吏꾨떒 湲곕뒫 媛쒖꽑_END
 
 	int nSelModuleIndex = m_pDP2P->IDP2P_GetSelectedModuleIndex();
 	int nFlatnessMode = pSettingInfo->GetFlatnessMode();
@@ -550,38 +593,41 @@
 		{
 			// AF Home
 			m_pDP2P->IDP2P_AFMHomePosition(0);
-			Sleep(5000);
+			//#3514_LYW_CF AOI Review �옄媛�吏꾨떒 湲곕뒫 媛쒖꽑_START
+			//Sleep(5000);
+			Sleep(1000);
+			//#3514_LYW_CF AOI Review �옄媛�吏꾨떒 湲곕뒫 媛쒖꽑_END
 			m_pDP2P->IDP2P_SetAFMTracking(0, TRUE);
 			Sleep(500);
 		}
 
-		if (nIdx == 0)
-		{
-			pResultPoint[nIdx].dPosX = 657.425
-				;
-			pResultPoint[nIdx].dPosY = 540.14
-				;
-		}
-		else if (nIdx == 1)
-		{
-			pResultPoint[nIdx].dPosX = 657.425
-				;
-			pResultPoint[nIdx].dPosY = 2278.636
-				;
-		}
-		else if (nIdx == 2)
-		{
-			pResultPoint[nIdx].dPosX = 2096.944
-				;
-			pResultPoint[nIdx].dPosY = 540.141
-				;
-		}
-		else if (nIdx == 3)
-		{
-			pResultPoint[nIdx].dPosX = 2096.944
-				;
-			pResultPoint[nIdx].dPosY = 2278.636;
-		}
+// 		if (nIdx == 0)
+// 		{
+// 			pResultPoint[nIdx].dPosX = 657.425
+// 				;
+// 			pResultPoint[nIdx].dPosY = 540.14
+// 				;
+// 		}
+// 		else if (nIdx == 1)
+// 		{
+// 			pResultPoint[nIdx].dPosX = 657.425
+// 				;
+// 			pResultPoint[nIdx].dPosY = 2278.636
+// 				;
+// 		}
+// 		else if (nIdx == 2)
+// 		{
+// 			pResultPoint[nIdx].dPosX = 2096.944
+// 				;
+// 			pResultPoint[nIdx].dPosY = 540.141
+// 				;
+// 		}
+// 		else if (nIdx == 3)
+// 		{
+// 			pResultPoint[nIdx].dPosX = 2096.944
+// 				;
+// 			pResultPoint[nIdx].dPosY = 2278.636;
+// 		}
 
 
 		//1. 紐⑦꽣瑜� �씠�룞
@@ -689,6 +735,61 @@
 	return TRUE;
 }
 
+int CDiagnosisProcessor::ProcessDiagnosisJudge(int nMode)
+{
+	for (int i = 0; i < 2; i++)
+	{
+		int nSelModuleIndex = i;
+
+		CDiagnosisInfo* pSettingInfo = m_pManager->GetDiagnosisInfo();
+		if (pSettingInfo == NULL) {
+			m_pDP2P->IDP2P_UpdateDialog(4);
+			return 0;
+		}
+
+		CDiagnosisResult* pProcessResult = m_pManager->GetDiagnosisResult_Squareness(nSelModuleIndex); // 0412 kyh 吏곴컖�룄 痢≪젙 紐⑤뱢�뿉 ���븳 寃곌낵�젙蹂�
+		if (pProcessResult == NULL) {
+			m_pDP2P->IDP2P_UpdateDialog(4);
+			return 0;
+		}
+
+		CDiagnosisResult* pProcessWSIResult = m_pManager->GetDiagnosisResult_Wsi(nSelModuleIndex); // 0412 kyh WSI 痢≪젙 紐⑤뱢�뿉 ���븳 寃곌낵 �젙蹂�
+		if (pProcessWSIResult == NULL) {
+			m_pDP2P->IDP2P_UpdateDialog(6);
+			return 0;
+		}
+
+		CString strMessage = _T("");
+		if (nMode == DiagnosisMode_All || nMode == DiagnosisMode_Review || nMode == DiagnosisMode_Squareness)
+		{
+			double dDate = (90 - pProcessResult->GetGantryDegree());
+			if (abs(dDate) >= abs(pSettingInfo->GetJudgeData_Degree())) // 0412 kyh 吏곴컖�룄�뿉�꽌 �굹�삩 Dgree 媛믪씠 �꽕�젙�븳 Judge 媛믩낫�떎 �겕嫄곕굹 媛숈쓣寃쎌슦
+			{
+
+				m_pDP2P->IDP2P_DiagnosisSendJudgeAlarm(); // �븣�엺 諛쒖깮
+				strMessage.Format(_T("[Judge Data] [Gantry %d]Diagnosis Error ! GantryDegree[%lf] Judge[%lf]"), i, dDate, pSettingInfo->GetJudgeData_Degree());
+				m_pDP2P->IDP2P_DisplayMessage(0, strMessage);
+			}
+		}
+
+		if (nMode == DiagnosisMode_All || nMode == DiagnosisMode_Wsi)
+		{
+			if (pProcessWSIResult->getWSI_RTB() >= pSettingInfo->GetJudgeData_3Sigma() || pProcessWSIResult->getWSI_RTB() <= 0) // 0412 kyh WSI �몴以��렪李� 鍮꾧탳
+			{
+				m_pDP2P->IDP2P_DiagnosisSendJudgeAlarm(); // �븣�엺 諛쒖깮
+				strMessage.Format(_T("[Judge Data] [WSI %d]Diagnosis Error ! WSI RTB[%lf] Judge[%lf]"), i, pProcessWSIResult->getWSI_RTB(), pSettingInfo->GetJudgeData_3Sigma());
+				m_pDP2P->IDP2P_DisplayMessage(0, strMessage);
+			}
+		}
+
+	}
+	//#3407 KYH �옄媛�吏꾨떒 Judge �뙋�젙 諛� �븣�엺 諛쒖깮 湲곕뒫 ADD END
+
+	//而댄뵆由욱듃 �떊�샇 蹂대궡湲�
+	m_pDP2P->IDP2P_DiagnosisSendCompleteSig();
+	return 1;
+}
+
 BOOL CDiagnosisProcessor::CalculateSquareness(int nIndex)
 {
 	if (m_pDP2P == NULL || m_pManager == NULL) return 0;
@@ -787,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;

--
Gitblit v1.9.3