From 2bd50ead7f0b92fb9ed5b477b63dea8fbcf8217e Mon Sep 17 00:00:00 2001
From: LYW <leeyeanwoo@diteam.co.kr>
Date: 월, 19 7월 2021 10:40:50 +0900
Subject: [PATCH] Ongoing60 #3517 CF AOI Review 자가진단 기능 개선

---
 ReviewSystem/ReviewSystem/DlgSelfDiagnosis_Squareness.cpp |  207 ++++++++++++++++++++++++++++++++++++++++++++-------
 1 files changed, 178 insertions(+), 29 deletions(-)

diff --git a/ReviewSystem/ReviewSystem/DlgSelfDiagnosis_Squareness.cpp b/ReviewSystem/ReviewSystem/DlgSelfDiagnosis_Squareness.cpp
index 58093dc..977e28c 100644
--- a/ReviewSystem/ReviewSystem/DlgSelfDiagnosis_Squareness.cpp
+++ b/ReviewSystem/ReviewSystem/DlgSelfDiagnosis_Squareness.cpp
@@ -15,7 +15,7 @@
 CDlgSelfDiagnosis_Squareness::CDlgSelfDiagnosis_Squareness(CDiagnosisManager* pDiagnosisManager, CWnd* pParent /*=nullptr*/)
 	: CDialogEx(IDD_DLG_SELF_DIAGNOSIS_SQUARENESS, pParent)
 	, m_nSelModuleIndex(0)
-	, m_dEditTheta(0)
+	, m_dEditLeftTheta(0)
 	, m_dEditMotorX_1(0)
 	, m_dEditMotorY_1(0)
 	, m_dEditPixelX_1(0)
@@ -28,6 +28,21 @@
 	, m_dEditMotorY_3(0)
 	, m_dEditPixelX_3(0)
 	, m_dEditPixelY_3(0)
+	, m_dEditRightTheta(0)
+	, m_dEditMotorX_4(0)
+	, m_dEditMotorY_4(0)
+	, m_dEditPixelX_4(0)
+	, m_dEditPixelY_4(0)
+	, m_dEditMotorX_5(0)
+	, m_dEditMotorY_5(0)
+	, m_dEditPixelX_5(0)
+	, m_dEditPixelY_5(0)
+	, m_dEditMotorX_6(0)
+	, m_dEditMotorY_6(0)
+	, m_dEditPixelX_6(0)
+	, m_dEditPixelY_6(0)
+	, m_editFirstSettingStandard(0)
+	, m_editFirstSettingStandard2(0)
 {
 	m_pDiagnosisManager = pDiagnosisManager;
 }
@@ -41,7 +56,7 @@
 	CDialogEx::DoDataExchange(pDX);
 	DDX_Control(pDX, IDC_GRID_GANTRY_DATA_HISTORY, m_ctrlGridGantryDataHistory);
 	DDX_Control(pDX, IDC_LIST, m_ctrlListFileHistory);
-	DDX_Text(pDX, IDC_EDIT_GANTRY_THETA, m_dEditTheta);
+	DDX_Text(pDX, IDC_EDIT_GANTRY_THETA, m_dEditLeftTheta);
 	DDX_Text(pDX, IDC_EDIT_GANTRY_MOTOR_X, m_dEditMotorX_1);
 	DDX_Text(pDX, IDC_EDIT_GANTRY_MOTOR_Y, m_dEditMotorY_1);
 	DDX_Text(pDX, IDC_EDIT_GANTRY_PIXEL_X, m_dEditPixelX_1);
@@ -55,6 +70,22 @@
 	DDX_Text(pDX, IDC_EDIT_GANTRY_MOTOR_Y3, m_dEditMotorY_3);
 	DDX_Text(pDX, IDC_EDIT_GANTRY_PIXEL_X3, m_dEditPixelX_3);
 	DDX_Text(pDX, IDC_EDIT_GANTRY_PIXEL_Y3, m_dEditPixelY_3);
+
+	DDX_Text(pDX, IDC_EDIT_GANTRY_THETA2, m_dEditRightTheta);
+	DDX_Text(pDX, IDC_EDIT_GANTRY_MOTOR_X4, m_dEditMotorX_4);
+	DDX_Text(pDX, IDC_EDIT_GANTRY_MOTOR_Y4, m_dEditMotorY_4);
+	DDX_Text(pDX, IDC_EDIT_GANTRY_PIXEL_X4, m_dEditPixelX_4);
+	DDX_Text(pDX, IDC_EDIT_GANTRY_PIXEL_Y4, m_dEditPixelY_4);
+	DDX_Text(pDX, IDC_EDIT_GANTRY_MOTOR_X5, m_dEditMotorX_5);
+	DDX_Text(pDX, IDC_EDIT_GANTRY_MOTOR_Y5, m_dEditMotorY_5);
+	DDX_Text(pDX, IDC_EDIT_GANTRY_PIXEL_X5, m_dEditPixelX_5);
+	DDX_Text(pDX, IDC_EDIT_GANTRY_PIXEL_Y5, m_dEditPixelY_5);
+	DDX_Text(pDX, IDC_EDIT_GANTRY_MOTOR_X6, m_dEditMotorX_6);
+	DDX_Text(pDX, IDC_EDIT_GANTRY_MOTOR_Y6, m_dEditMotorY_6);
+	DDX_Text(pDX, IDC_EDIT_GANTRY_PIXEL_X6, m_dEditPixelX_6);
+	DDX_Text(pDX, IDC_EDIT_GANTRY_PIXEL_Y6, m_dEditPixelY_6);
+	DDX_Text(pDX, IDC_EDIT_SQUARENESS_FIRSTSETTING, m_editFirstSettingStandard);
+	DDX_Text(pDX, IDC_EDIT_SQUARENESS_FIRSTSETTING2, m_editFirstSettingStandard2);
 	//DDX_Control(pDX, IDC_BUTTON_SIMULATION, m_BtSumulation);
 	//DDX_Control(pDX, IDC_BUTTON_SIMULATION, m_BtSumulation);
 	DDX_Control(pDX, IDC_BUTTON_SIMULATION2, m_BtSumulation);
@@ -157,88 +188,135 @@
 		const CDiagnosisInfo* pSettingInfo = m_pDiagnosisManager->GetDiagnosisInfo();
 		if (pSettingInfo == NULL) return;
 
-		const CDiagnosisResult* pStandardResult = pSettingInfo->GetSettingResult_Squareness(m_nSelModuleIndex);
-		if (pStandardResult == NULL) return;
+		m_editFirstSettingStandard = pSettingInfo->GetSquarenessStandard();
+		m_editFirstSettingStandard2 = pSettingInfo->GetSquarenessStandard2();
 
 		if (bLoadResult) // update load file data
 		{
-			const CDiagnosisResult* pResult = m_pDiagnosisManager->GetDiagnosisResult_Squareness(m_nSelModuleIndex);
+			const CDiagnosisResult* pResult = m_pDiagnosisManager->GetDiagnosisResult_Squareness(0);
 			if (pResult == NULL) return;
 
 			// result : theta, pixel position
-			m_dEditTheta = pResult->GetGantryDegree();
+			m_dEditLeftTheta = pResult->GetGantryDegree();
 			for (int nPIdx = 0; nPIdx < pSettingInfo->GetPanelCount_Squareness(); nPIdx++)
 			{
 				const SPositionData* pPosData = pResult->GetPositionData_Squareness(nPIdx);
 				if (pPosData == NULL) continue;
 
-				if (pPosData->nIndex == PanelPosition_Base)
+				if (pPosData->nPosMode == PanelPosition_Base)
 				{
 					m_dEditPixelX_1 = pPosData->dPixelX;
 					m_dEditPixelY_1 = pPosData->dPixelY;
 				}
-				else if (pPosData->nIndex == PanelPosition_Sub)
+				else if (pPosData->nPosMode == PanelPosition_Sub)
 				{
 					m_dEditPixelX_2 = pPosData->dPixelX;
 					m_dEditPixelY_2 = pPosData->dPixelY;
 				}
-				else if (pPosData->nIndex == PanelPosition_Addition)
+				else if (pPosData->nPosMode == PanelPosition_Addition)
 				{
 					m_dEditPixelX_3 = pPosData->dPixelX;
 					m_dEditPixelY_3 = pPosData->dPixelY;
 				}
 			}
+
+			pResult = m_pDiagnosisManager->GetDiagnosisResult_Squareness(1);
+			if (pResult == NULL) return;
+
+			// result : theta, pixel position
+			m_dEditRightTheta = pResult->GetGantryDegree();
+			for (int nPIdx = 0; nPIdx < pSettingInfo->GetPanelCount_Squareness(); nPIdx++)
+			{
+				const SPositionData* pPosData = pResult->GetPositionData_Squareness(nPIdx+3);
+				if (pPosData == NULL) continue;
+
+				if (pPosData->nPosMode == PanelPosition_Base)
+				{
+					m_dEditPixelX_4 = pPosData->dPixelX;
+					m_dEditPixelY_4 = pPosData->dPixelY;
+				}
+				else if (pPosData->nPosMode == PanelPosition_Sub)
+				{
+					m_dEditPixelX_5 = pPosData->dPixelX;
+					m_dEditPixelY_5 = pPosData->dPixelY;
+				}
+				else if (pPosData->nPosMode == PanelPosition_Addition)
+				{
+					m_dEditPixelX_6 = pPosData->dPixelX;
+					m_dEditPixelY_6 = pPosData->dPixelY;
+				}
+			}
+
 		}
 		else if (bLoadResult == FALSE && m_pDiagnosisManager->ExistStandardData() == FALSE)// update setting data
 		{
-			const CDiagnosisResult* pResult = m_pDiagnosisManager->GetDiagnosisResult_Squareness(m_nSelModuleIndex);
+			const CDiagnosisResult* pResult = m_pDiagnosisManager->GetDiagnosisResult_Squareness(0);
 			if (pResult == NULL) return;
 
 			// result : theta, pixel position
-			m_dEditTheta = pResult->GetGantryDegree();
+			m_dEditLeftTheta = pResult->GetGantryDegree();
 
 			for (int nPIdx = 0; nPIdx < pSettingInfo->GetPanelCount_Squareness(); nPIdx++)
 			{
 				const SPositionData* pPosData = pResult->GetPositionData_Squareness(nPIdx);
 				if (pPosData == NULL) continue;
 
-				if (pPosData->nIndex == PanelPosition_Base)
+				if (pPosData->nPosMode == PanelPosition_Base)
 				{
 					m_dEditPixelX_1 = pPosData->dPixelX;
 					m_dEditPixelY_1 = pPosData->dPixelY;
 				}
-				else if (pPosData->nIndex == PanelPosition_Sub)
+				else if (pPosData->nPosMode == PanelPosition_Sub)
 				{
 					m_dEditPixelX_2 = pPosData->dPixelX;
 					m_dEditPixelY_2 = pPosData->dPixelY;
 				}
-				else if (pPosData->nIndex == PanelPosition_Addition)
+				else if (pPosData->nPosMode == PanelPosition_Addition)
 				{
 					m_dEditPixelX_3 = pPosData->dPixelX;
 					m_dEditPixelY_3 = pPosData->dPixelY;
 				}
 			}
+
+			pResult = m_pDiagnosisManager->GetDiagnosisResult_Squareness(1);
+			if (pResult == NULL) return;
+
+			// result : theta, pixel position
+			m_dEditLeftTheta = pResult->GetGantryDegree();
+
+			for (int nPIdx = 0; nPIdx < pSettingInfo->GetPanelCount_Squareness(); nPIdx++)
+			{
+				const SPositionData* pPosData = pResult->GetPositionData_Squareness(nPIdx+3);
+				if (pPosData == NULL) continue;
+
+				if (pPosData->nPosMode == PanelPosition_Base)
+				{
+					m_dEditPixelX_4 = pPosData->dPixelX;
+					m_dEditPixelY_4 = pPosData->dPixelY;
+				}
+				else if (pPosData->nPosMode == PanelPosition_Sub)
+				{
+					m_dEditPixelX_5 = pPosData->dPixelX;
+					m_dEditPixelY_5 = pPosData->dPixelY;
+				}
+				else if (pPosData->nPosMode == PanelPosition_Addition)
+				{
+					m_dEditPixelX_6 = pPosData->dPixelX;
+					m_dEditPixelY_6 = pPosData->dPixelY;
+				}
+			}
+
 		}
 		else
 		{
-			int nPlanindex = 0;
-
 			// result : theta, pixel position
-			const CDiagnosisResult* pResult = m_pDiagnosisManager->GetDiagnosisResult_Squareness(m_nSelModuleIndex);
+			const CDiagnosisResult* pResult = m_pDiagnosisManager->GetDiagnosisResult_Squareness(0);
 			if (pResult == NULL) return;
 
 			BOOL bProcess = FALSE;
 			for (int nPIdx = 0; nPIdx < pSettingInfo->GetPanelCount_Squareness(); nPIdx++)
 			{
-				if (m_nSelModuleIndex == 1)
-				{
-					nPlanindex = nPIdx + 3;
-				}
-				else
-				{
-					nPlanindex = nPIdx;
-				}
-				const SPositionData* pPosData = pResult->GetPositionData_Squareness(nPlanindex);
+				const SPositionData* pPosData = pResult->GetPositionData_Squareness(nPIdx);
 				if (pPosData == NULL) continue;
 
 				if (pPosData->nPosMode == PanelPosition_Base)
@@ -247,13 +325,13 @@
 					m_dEditPixelY_1 = pPosData->dPixelY;
 					bProcess = pPosData->bProcsss;
 				}
-				else if (pPosData->nIndex == PanelPosition_Sub)
+				else if (pPosData->nPosMode == PanelPosition_Sub)
 				{
 					m_dEditPixelX_2 = pPosData->dPixelX;
 					m_dEditPixelY_2 = pPosData->dPixelY;
 					bProcess &= pPosData->bProcsss;
 				}
-				else if (pPosData->nIndex == PanelPosition_Addition)
+				else if (pPosData->nPosMode == PanelPosition_Addition)
 				{
 					m_dEditPixelX_3 = pPosData->dPixelX;
 					m_dEditPixelY_3 = pPosData->dPixelY;
@@ -261,8 +339,41 @@
 				}
 			}
 
-			m_dEditTheta = bProcess ? pResult->GetGantryDegree() : 0.;
+			m_dEditLeftTheta = bProcess ? pResult->GetGantryDegree() : 0.;
+
+			pResult = m_pDiagnosisManager->GetDiagnosisResult_Squareness(1);
+			if (pResult == NULL) return;
+
+			bProcess = FALSE;
+			for (int nPIdx = 0; nPIdx < pSettingInfo->GetPanelCount_Squareness(); nPIdx++)
+			{
+				const SPositionData* pPosData = pResult->GetPositionData_Squareness(nPIdx+3);
+				if (pPosData == NULL) continue;
+
+				if (pPosData->nPosMode == PanelPosition_Base)
+				{
+					m_dEditPixelX_4 = pPosData->dPixelX;
+					m_dEditPixelY_4 = pPosData->dPixelY;
+					bProcess = pPosData->bProcsss;
+				}
+				else if (pPosData->nPosMode == PanelPosition_Sub)
+				{
+					m_dEditPixelX_5 = pPosData->dPixelX;
+					m_dEditPixelY_5 = pPosData->dPixelY;
+					bProcess &= pPosData->bProcsss;
+				}
+				else if (pPosData->nPosMode == PanelPosition_Addition)
+				{
+					m_dEditPixelX_6 = pPosData->dPixelX;
+					m_dEditPixelY_6 = pPosData->dPixelY;
+					bProcess &= pPosData->bProcsss;
+				}
+			}
+
+			m_dEditRightTheta = bProcess ? pResult->GetGantryDegree() : 0.;
 		}
+
+		const CDiagnosisResult* pStandardResult = pSettingInfo->GetSettingResult_Squareness(0);
 
 		// info : motor position
 		for (int nPIdx = 0; nPIdx < pSettingInfo->GetPanelCount_Squareness(); nPIdx++)
@@ -284,6 +395,30 @@
 			{
 				m_dEditMotorX_3 = pPosData->dPosX;
 				m_dEditMotorY_3 = pPosData->dPosY;
+			}
+		}
+
+		pStandardResult = pSettingInfo->GetSettingResult_Squareness(1);
+
+		for (int nPIdx = 0; nPIdx < pSettingInfo->GetPanelCount_Squareness(); nPIdx++)
+		{
+			const SPositionData* pPosData = pStandardResult->GetPositionData_Squareness(nPIdx);
+			if (pPosData == NULL) continue;
+
+			if (pPosData->nIndex == PanelPosition_Base)
+			{
+				m_dEditMotorX_4 = pPosData->dPosX;
+				m_dEditMotorY_4 = pPosData->dPosY;
+			}
+			else if (pPosData->nIndex == PanelPosition_Sub)
+			{
+				m_dEditMotorX_5 = pPosData->dPosX;
+				m_dEditMotorY_5 = pPosData->dPosY;
+			}
+			else if (pPosData->nIndex == PanelPosition_Addition)
+			{
+				m_dEditMotorX_6 = pPosData->dPosX;
+				m_dEditMotorY_6 = pPosData->dPosY;
 			}
 		}
 	
@@ -414,8 +549,22 @@
 void CDlgSelfDiagnosis_Squareness::OnBnClickedButtonSimulation2()
 {
 	// TODO: �뿬湲곗뿉 而⑦듃濡� �븣由� 泥섎━湲� 肄붾뱶瑜� 異붽��빀�땲�떎.
+
 	if (m_pDiagnosisManager == NULL) return;
 
+	//#3514_LYW_CF AOI Review �옄媛�吏꾨떒 湲곕뒫 媛쒖꽑_START
+	if (m_pDiagnosisManager->CheckManualMode() == FALSE)
+	{
+		CString strMessage;
+		strMessage.Format(_T("Change Manual Mode!!"));
+		if (IDOK == AfxMessageBox(strMessage, MB_OK | MB_ICONERROR))
+		{
+			g_pLog->DisplayMessage(_T("Manual Diagnosis Fail! Not Manual Mode"));
+			return;
+		}
+	}
+	//#3514_LYW_CF AOI Review �옄媛�吏꾨떒 湲곕뒫 媛쒖꽑_END
+
 	GetDialogControls();
 
 	m_pDiagnosisManager->RecvSignalToSignalControl(DiagnosisSignal_Manual, DiagnosisMode_Squareness, TRUE);

--
Gitblit v1.9.3