From e5fa774d622d6852fe8e1f033045aed221649108 Mon Sep 17 00:00:00 2001 From: LYW <leeyeanwoo@diteam.co.kr> Date: 금, 15 10월 2021 13:24:54 +0900 Subject: [PATCH] Ongoing80 #3662 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..1c7c651 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; + /*< LYW 20210719 : #3517 ADD 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; + } + } + /*< LYW 20210719 : #3517 ADD End >*/ + GetDialogControls(); m_pDiagnosisManager->RecvSignalToSignalControl(DiagnosisSignal_Manual, DiagnosisMode_Squareness, TRUE); -- Gitblit v1.9.3