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_Setting.h | 5 ReviewSystem/ReviewSystem/DlgSelfDiagnosis_Wsi.cpp | 116 ++++++ ReviewSystem/ReviewSystem/ReviewSystem.rc | 256 ++++++++++---- ReviewSystem/ReviewSystem/DlgSelfDiagnosis_Flatness.cpp | 27 + ReviewSystem/ReviewSystem/ReviewInterface.cpp | 28 + ReviewSystem/M_AutoDiagnosisManager/DiagnosisInfo.cpp | 6 ReviewSystem/M_AutoDiagnosisManager/DiagnosisProcessor.cpp | 207 ++++++++--- ReviewSystem/include/M_AutoDiagnosisManager/DiagnosisManager.h | 2 ReviewSystem/ReviewSystem/SequenceProcessor_CPJT.cpp | 12 ReviewSystem/include/M_AutoDiagnosisManager/DiagnosisProcessor.h | 1 Internal_Library/CHWsiControls/WsiControl_Dit.cpp | 4 Internal_Library/Include/CHWsiControls/WsiControlInfo.h | 1 ReviewSystem/ReviewSystem/DlgSelfDiagnosis_Squareness.cpp | 207 +++++++++- ReviewSystem/ReviewSystem/DlgSelfDiagnosis_Squareness.h | 17 ReviewSystem/ReviewSystem/ReviewInterface.h | 1 ReviewSystem/M_AutoDiagnosisManager/DiagnosisManager.cpp | 9 ReviewSystem/ReviewSystem/resource.h | 42 ++ ReviewSystem/ReviewSystem/DlgSelfDiagnosis_Setting.cpp | 53 ++ ReviewSystem/M_AutoDiagnosisManager/M_AutoDiagnosisManager.vcxproj | 1 ReviewSystem/ReviewSystem/DlgSelfDiagnosis_Wsi.h | 21 + ReviewSystem/include/M_AutoDiagnosisManager/DiagnosisInfo.h | 44 ++ 21 files changed, 883 insertions(+), 177 deletions(-) diff --git a/Internal_Library/CHWsiControls/WsiControl_Dit.cpp b/Internal_Library/CHWsiControls/WsiControl_Dit.cpp index 0fff162..0d17f11 100644 --- a/Internal_Library/CHWsiControls/WsiControl_Dit.cpp +++ b/Internal_Library/CHWsiControls/WsiControl_Dit.cpp @@ -455,6 +455,10 @@ measureResult.nWsiState = pPacket->GetInt(3); measureResult.dAccuracy = pPacket->GetDouble(0); measureResult.dRepeatability = pPacket->GetDouble(1); + for (int i = 0; i < 10; i++) + { + measureResult.dDiagnosisHeight[i] = pPacket->GetDouble(i + 2); + } m_pWC2P->IWC2P_DisplayMessage(m_nIndex,_T("VLSI state %d ACC %f RTB %f"),measureResult.nWsiState,measureResult.dAccuracy ,measureResult.dRepeatability); } break; diff --git a/Internal_Library/Include/CHWsiControls/WsiControlInfo.h b/Internal_Library/Include/CHWsiControls/WsiControlInfo.h index bab4f4d..4fc2f7d 100644 --- a/Internal_Library/Include/CHWsiControls/WsiControlInfo.h +++ b/Internal_Library/Include/CHWsiControls/WsiControlInfo.h @@ -75,6 +75,7 @@ int nWsiState; double dAccuracy; double dRepeatability; + double dDiagnosisHeight[10]; bool bBigSizeDefect; diff --git a/ReviewSystem/M_AutoDiagnosisManager/DiagnosisInfo.cpp b/ReviewSystem/M_AutoDiagnosisManager/DiagnosisInfo.cpp index 33e491d..3f0ef85 100644 --- a/ReviewSystem/M_AutoDiagnosisManager/DiagnosisInfo.cpp +++ b/ReviewSystem/M_AutoDiagnosisManager/DiagnosisInfo.cpp @@ -19,6 +19,12 @@ file.GetItem(_T("FLATNESS_JUDGE_DATA_Z_RANGE"), m_dJudgeData_ZRange, 0); file.GetItem(_T("FLATNESS_GLASS_X"), m_nGlassSizeX, 0); file.GetItem(_T("FLATNESS_GLASS_Y"), m_nGlassSizeY, 0); + //#3514_LYW_CF AOI Review 자가진단 기능 개선_START + file.GetItem(_T("FLATNESS_SKIPMODE"), m_nFlatnessSkipMode, 0); + file.GetItem(_T("SQUARENESS_STANDARD"), m_dSquarenessStandard, 0); + file.GetItem(_T("SQUARENESS_STANDARD2"), m_dSquarenessStandard2, 0); + file.GetItem(_T("WSI_STANDARD"), m_dWSIStandard, 0); + //#3514_LYW_CF AOI Review 자가진단 기능 개선_END file.GetItem(_T("FLATNESS_MODE"), m_nFlatnessMode, 0); file.GetItem(_T("FLATNESS_RANGECOUNT"), m_nRangeCount_Flatness, 0); file.GetItem(_T("WSI_PANEL_COUNT"), m_nPanelCount_Wsi, 0); diff --git a/ReviewSystem/M_AutoDiagnosisManager/DiagnosisManager.cpp b/ReviewSystem/M_AutoDiagnosisManager/DiagnosisManager.cpp index 9ceb51d..5290a55 100644 --- a/ReviewSystem/M_AutoDiagnosisManager/DiagnosisManager.cpp +++ b/ReviewSystem/M_AutoDiagnosisManager/DiagnosisManager.cpp @@ -1013,6 +1013,15 @@ return CreateDirectory(strTemp, NULL); } +BOOL CDiagnosisManager::CheckManualMode() +{ + if (m_pDP2P->IDP2P_CheckManualMode() == TRUE) + { + return TRUE; + } + return FALSE; +} + int CDiagnosisManager::SetDiagnosisResultCount_Squareness(int nCount) { if (nCount == int(m_vecDiagnosisResult_Squareness.size())) return int(m_vecDiagnosisResult_Squareness.size()); diff --git a/ReviewSystem/M_AutoDiagnosisManager/DiagnosisProcessor.cpp b/ReviewSystem/M_AutoDiagnosisManager/DiagnosisProcessor.cpp index ad4b0c8..e518d50 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() == 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() == 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() == 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() == 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() == 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 (1000 <= GetTickCount() - stTime) { break; } @@ -292,14 +311,22 @@ } m_pDP2P->IDP2P_SetAFMTracking(nSelModuleIndex, TRUE); - Sleep(1000); + //#3514_LYW_CF AOI Review �옄媛�吏꾨떒 湲곕뒫 媛쒖꽑_START + //Sleep(1000); + Sleep(500); + //#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 (1000 <= 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,7 +593,10 @@ { // 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); } @@ -689,6 +735,55 @@ return TRUE; } +int CDiagnosisProcessor::ProcessDiagnosisJudge() +{ + 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); + } + } + //#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; diff --git a/ReviewSystem/M_AutoDiagnosisManager/M_AutoDiagnosisManager.vcxproj b/ReviewSystem/M_AutoDiagnosisManager/M_AutoDiagnosisManager.vcxproj index 4a9c256..b64e0de 100644 --- a/ReviewSystem/M_AutoDiagnosisManager/M_AutoDiagnosisManager.vcxproj +++ b/ReviewSystem/M_AutoDiagnosisManager/M_AutoDiagnosisManager.vcxproj @@ -190,6 +190,7 @@ </ModuleDefinitionFile> <AdditionalLibraryDirectories>../lib;../../Internal_Library/lib;</AdditionalLibraryDirectories> <AdditionalDependencies>CHThreadPools_x64_vc15.lib</AdditionalDependencies> + <ImportLibrary>$(SolutionDir)\lib\$(TargetName).lib</ImportLibrary> </Link> <Midl> <MkTypLibCompatible>false</MkTypLibCompatible> diff --git a/ReviewSystem/ReviewSystem/DlgSelfDiagnosis_Flatness.cpp b/ReviewSystem/ReviewSystem/DlgSelfDiagnosis_Flatness.cpp index c2563fb..d978c31 100644 --- a/ReviewSystem/ReviewSystem/DlgSelfDiagnosis_Flatness.cpp +++ b/ReviewSystem/ReviewSystem/DlgSelfDiagnosis_Flatness.cpp @@ -982,6 +982,20 @@ void CDlgSelfDiagnosis_Flatness::OnBnClickedButtonSimulation() { // TODO: �뿬湲곗뿉 而⑦듃濡� �븣由� 泥섎━湲� 肄붾뱶瑜� 異붽��빀�땲�떎. + + //#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 + if (m_bState == FALSE) { m_bState = TRUE; @@ -999,6 +1013,19 @@ void CDlgSelfDiagnosis_Flatness::OnBnClickedButtonManual() { + //#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 + m_pDiagnosisManager->ManualMeasure_Flatness(); } diff --git a/ReviewSystem/ReviewSystem/DlgSelfDiagnosis_Setting.cpp b/ReviewSystem/ReviewSystem/DlgSelfDiagnosis_Setting.cpp index 8419810..df5dc06 100644 --- a/ReviewSystem/ReviewSystem/DlgSelfDiagnosis_Setting.cpp +++ b/ReviewSystem/ReviewSystem/DlgSelfDiagnosis_Setting.cpp @@ -56,6 +56,12 @@ DDX_Control(pDX, IDC_EDIT_WSI_PANEL_POS_Y, m_editPanelPosY); DDX_Control(pDX, IDC_EDIT_WSI_PANEL_POS_X2, m_editPanelPosX2); DDX_Control(pDX, IDC_EDIT_WSI_PANEL_POS_Y2, m_editPanelPosY2); + //#3514_LYW_CF AOI Review �옄媛�吏꾨떒 湲곕뒫 媛쒖꽑_START + DDX_Control(pDX, IDC_CHECK_SELF_DIAGNOSIS_FLATNESS_SKIP, m_CheckFlatnessSkip); + DDX_Control(pDX, IDC_EDIT_SQUARENESS_STANDARD, m_editSquarenessStandard); + DDX_Control(pDX, IDC_EDIT_SQUARENESS_STANDARD2, m_editSquarenessStandard2); + DDX_Control(pDX, IDC_EDIT_WSI_STANDARD, m_editWSIStandard); + //#3514_LYW_CF AOI Review �옄媛�吏꾨떒 湲곕뒫 媛쒖꽑_END DDX_Text(pDX, IDC_EDIT_REVIEW_PANEL_POS_X, m_dEditReviewPanelPosX); DDX_Text(pDX, IDC_EDIT_REVIEW_PANEL_POS_Y, m_dEditReviewPanelPosY); DDX_Text(pDX, IDC_EDIT_REVIEW_PANEL_POS_X2, m_dEditReviewPanelPosX2); @@ -111,16 +117,19 @@ BOOL CDlgSelfDiagnosis_Setting::ReadAutoDiagnosisConfigFile() { + //#3514_LYW_CF AOI Review �옄媛�吏꾨떒 湲곕뒫 媛쒖꽑_START + CString strConfigFilePath = _T(""); + strConfigFilePath.Format(_T("%s\\%s"), REVIEW_AUTO_DIAGNOSIS_SETTING_FILE_PATH, REVIEW_AUTO_DIAGNOSIS_SETTING_FILE_NAME); + m_pDiagnosisManager->LoadSettingConfigFile(strConfigFilePath); + //#3514_LYW_CF AOI Review �옄媛�吏꾨떒 湲곕뒫 媛쒖꽑_END CDiagnosisInfo* pSettingInfo = m_pDiagnosisManager->GetDiagnosisInfo(); if (pSettingInfo == NULL) return FALSE; CString strTemp = _T(""); - CString strFilePath = REVIEW_AUTO_DIAGNOSIS_SETTING_FILE_PATH; - CString strFileName = _T("AutoDiagnosisSetting.cfg"); - m_editFilePath.SetWindowTextA(strFilePath +_T('\\') + strFileName); + m_editFilePath.SetWindowTextA(strConfigFilePath); strTemp.Format("%d", pSettingInfo->GetModuleCount()); m_editModuleCount.SetWindowTextA(strTemp); @@ -133,6 +142,14 @@ strTemp.Format("%f", pSettingInfo->GetJudgeData_Degree()); m_editJudgeData_Degree.SetWindowTextA(strTemp); + + //#3514_LYW_CF AOI Review �옄媛�吏꾨떒 湲곕뒫 媛쒖꽑_START + strTemp.Format("%f", pSettingInfo->GetSquarenessStandard()); + m_editSquarenessStandard.SetWindowTextA(strTemp); + + strTemp.Format("%f", pSettingInfo->GetSquarenessStandard2()); + m_editSquarenessStandard2.SetWindowTextA(strTemp); + //#3514_LYW_CF AOI Review �옄媛�吏꾨떒 湲곕뒫 媛쒖꽑_END strTemp.Format("%d", pSettingInfo->GetCameraFrameWidth()); m_editFrameWidth.SetWindowTextA(strTemp); @@ -166,12 +183,20 @@ strTemp.Format("%d", pSettingInfo->GetGlassSizeY_Flatness()); m_editGlassSizeY.SetWindowTextA(strTemp); + //#3514_LYW_CF AOI Review �옄媛�吏꾨떒 湲곕뒫 媛쒖꽑_START + m_CheckFlatnessSkip.SetCheck(pSettingInfo->GetFlastnessSkipMode()); + //#3514_LYW_CF AOI Review �옄媛�吏꾨떒 湲곕뒫 媛쒖꽑_END strTemp.Format("%d", pSettingInfo->GetPanelCount_Wsi()); m_editPanelCount_Wsi.SetWindowTextA(strTemp); strTemp.Format("%f", pSettingInfo->GetJudgeData_3Sigma()); m_editJudgeData_3Sigma.SetWindowTextA(strTemp); + + //#3514_LYW_CF AOI Review �옄媛�吏꾨떒 湲곕뒫 媛쒖꽑_START + strTemp.Format("%f", pSettingInfo->GetWSIStandard()); + m_editWSIStandard.SetWindowTextA(strTemp); + //#3514_LYW_CF AOI Review �옄媛�吏꾨떒 湲곕뒫 媛쒖꽑_END strTemp.Format("%f", pSettingInfo->GetPanelPosX_Wsi()); m_editPanelPosX.SetWindowTextA(strTemp); @@ -278,6 +303,28 @@ nTemp = atoi(strTemp); macroFile.SetItem(strItem, nTemp); + //#3514_LYW_CF AOI Review �옄媛�吏꾨떒 湲곕뒫 媛쒖꽑_START + strItem.Format(_T("FLATNESS_SKIPMODE")); + nTemp = m_CheckFlatnessSkip.GetCheck(); + macroFile.SetItem(strItem, nTemp); + + strItem.Format(_T("SQUARENESS_STANDARD")); + m_editSquarenessStandard.GetWindowTextA(strTemp); + dTemp = atof(strTemp); + macroFile.SetItem(strItem, dTemp); + + strItem.Format(_T("SQUARENESS_STANDARD2")); + m_editSquarenessStandard2.GetWindowTextA(strTemp); + dTemp = atof(strTemp); + macroFile.SetItem(strItem, dTemp); + + strItem.Format(_T("WSI_STANDARD")); + m_editWSIStandard.GetWindowTextA(strTemp); + dTemp = atof(strTemp); + macroFile.SetItem(strItem, dTemp); + + //#3514_LYW_CF AOI Review �옄媛�吏꾨떒 湲곕뒫 媛쒖꽑_END + strItem.Format(_T("WSI_PANEL_COUNT")); m_editPanelCount_Wsi.GetWindowTextA(strTemp); nTemp = atoi(strTemp); diff --git a/ReviewSystem/ReviewSystem/DlgSelfDiagnosis_Setting.h b/ReviewSystem/ReviewSystem/DlgSelfDiagnosis_Setting.h index 83262bd..24c259c 100644 --- a/ReviewSystem/ReviewSystem/DlgSelfDiagnosis_Setting.h +++ b/ReviewSystem/ReviewSystem/DlgSelfDiagnosis_Setting.h @@ -63,4 +63,9 @@ double m_dEditReviewPanelPosY5; double m_dEditReviewPanelPosX6; double m_dEditReviewPanelPosY6; +public: + CButton m_CheckFlatnessSkip; + CEdit m_editSquarenessStandard; + CEdit m_editSquarenessStandard2; + CEdit m_editWSIStandard; }; 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); diff --git a/ReviewSystem/ReviewSystem/DlgSelfDiagnosis_Squareness.h b/ReviewSystem/ReviewSystem/DlgSelfDiagnosis_Squareness.h index 39757e8..2f37463 100644 --- a/ReviewSystem/ReviewSystem/DlgSelfDiagnosis_Squareness.h +++ b/ReviewSystem/ReviewSystem/DlgSelfDiagnosis_Squareness.h @@ -46,7 +46,7 @@ CListBox m_ctrlListFileHistory; CComboBox m_ctrlComboModuleIndex; int m_nSelModuleIndex; - double m_dEditTheta; + double m_dEditLeftTheta; double m_dEditMotorX_1; double m_dEditMotorY_1; double m_dEditPixelX_1; @@ -59,6 +59,21 @@ double m_dEditMotorY_3; double m_dEditPixelX_3; double m_dEditPixelY_3; + double m_dEditRightTheta; + double m_dEditMotorX_4; + double m_dEditMotorY_4; + double m_dEditPixelX_4; + double m_dEditPixelY_4; + double m_dEditMotorX_5; + double m_dEditMotorY_5; + double m_dEditPixelX_5; + double m_dEditPixelY_5; + double m_dEditMotorX_6; + double m_dEditMotorY_6; + double m_dEditPixelX_6; + double m_dEditPixelY_6; CButton m_BtSumulation; afx_msg void OnBnClickedButtonSimulation2(); + double m_editFirstSettingStandard; + double m_editFirstSettingStandard2; }; diff --git a/ReviewSystem/ReviewSystem/DlgSelfDiagnosis_Wsi.cpp b/ReviewSystem/ReviewSystem/DlgSelfDiagnosis_Wsi.cpp index c7e498b..4c08810 100644 --- a/ReviewSystem/ReviewSystem/DlgSelfDiagnosis_Wsi.cpp +++ b/ReviewSystem/ReviewSystem/DlgSelfDiagnosis_Wsi.cpp @@ -16,6 +16,7 @@ : CDialogEx(IDD_DLG_SELF_DIAGNOSIS_WSI, pParent) { m_pDiagnosisManager = pDiagnosisManager; + m_editWSIFirstStandard = 180; } CDlgSelfDiagnosis_Wsi::~CDlgSelfDiagnosis_Wsi() @@ -30,6 +31,27 @@ DDX_Control(pDX, IDC_EDIT_WSI_RTB_00, m_ctrlWsiRtb00); DDX_Control(pDX, IDC_EDIT_WSI_RTB_01, m_ctrlWsiRtb01); DDX_Control(pDX, IDC_BUTTON_SIMULATION, m_btSimulation); + DDX_Text(pDX, IDC_EDIT_WSI_FIRST_STANDARD, m_editWSIFirstStandard); + DDX_Control(pDX, IDC_EDIT_WSI_HEIGHT1, m_editWSIHeight1); + DDX_Control(pDX, IDC_EDIT_WSI_HEIGHT2, m_editWSIHeight2); + DDX_Control(pDX, IDC_EDIT_WSI_HEIGHT3, m_editWSIHeight3); + DDX_Control(pDX, IDC_EDIT_WSI_HEIGHT4, m_editWSIHeight4); + DDX_Control(pDX, IDC_EDIT_WSI_HEIGHT5, m_editWSIHeight5); + DDX_Control(pDX, IDC_EDIT_WSI_HEIGHT6, m_editWSIHeight6); + DDX_Control(pDX, IDC_EDIT_WSI_HEIGHT7, m_editWSIHeight7); + DDX_Control(pDX, IDC_EDIT_WSI_HEIGHT8, m_editWSIHeight8); + DDX_Control(pDX, IDC_EDIT_WSI_HEIGHT9, m_editWSIHeight9); + DDX_Control(pDX, IDC_EDIT_WSI_HEIGHT10, m_editWSIHeight10); + DDX_Control(pDX, IDC_EDIT_WSI_HEIGHT11, m_editWSIHeight11); + DDX_Control(pDX, IDC_EDIT_WSI_HEIGHT12, m_editWSIHeight12); + DDX_Control(pDX, IDC_EDIT_WSI_HEIGHT13, m_editWSIHeight13); + DDX_Control(pDX, IDC_EDIT_WSI_HEIGHT14, m_editWSIHeight14); + DDX_Control(pDX, IDC_EDIT_WSI_HEIGHT15, m_editWSIHeight15); + DDX_Control(pDX, IDC_EDIT_WSI_HEIGHT16, m_editWSIHeight16); + DDX_Control(pDX, IDC_EDIT_WSI_HEIGHT17, m_editWSIHeight17); + DDX_Control(pDX, IDC_EDIT_WSI_HEIGHT18, m_editWSIHeight18); + DDX_Control(pDX, IDC_EDIT_WSI_HEIGHT19, m_editWSIHeight19); + DDX_Control(pDX, IDC_EDIT_WSI_HEIGHT20, m_editWSIHeight20); } @@ -45,9 +67,20 @@ void CDlgSelfDiagnosis_Wsi::OnBnClickedButtonSimulation() { - // TODO: �뿬湲곗뿉 而⑦듃濡� �븣由� 泥섎━湲� 肄붾뱶瑜� 異붽��빀�땲�떎. - // 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(); @@ -71,19 +104,96 @@ { const CDiagnosisInfo* pSettingInfo = m_pDiagnosisManager->GetDiagnosisInfo(); if (pSettingInfo == NULL) return; + + m_editWSIFirstStandard = pSettingInfo->GetWSIStandard(); double nACC00 = m_pDiagnosisManager->GetDiagnosisResult_Wsi(0)->getWSI_ACC(); double nACC01 = m_pDiagnosisManager->GetDiagnosisResult_Wsi(1)->getWSI_ACC(); double nRTB00 = m_pDiagnosisManager->GetDiagnosisResult_Wsi(0)->getWSI_RTB(); double nRTB01 = m_pDiagnosisManager->GetDiagnosisResult_Wsi(1)->getWSI_RTB(); + double dDiagnosisHeight[20]; + + for (int i = 0; i < 10; i++) + { + dDiagnosisHeight[i] = m_pDiagnosisManager->GetDiagnosisResult_Wsi(0)->GetDiagnosisHeight(i); + } + for (int i = 0; i < 10; i++) + { + dDiagnosisHeight[i+10] = m_pDiagnosisManager->GetDiagnosisResult_Wsi(1)->GetDiagnosisHeight(i); + } + + CString strDiagnosisHeight; CString strACC00, strACC01; CString strRTB00, strRTB01; strACC00.Format(_T("%d"), nACC00); + strACC01.Format(_T("%d"), nACC01); + strRTB00.Format(_T("%d"), nRTB00); + strRTB01.Format(_T("%d"), nRTB01); m_ctrlWsiAcc00.SetWindowTextA(strACC00); m_ctrlWsiAcc01.SetWindowTextA(strACC01); m_ctrlWsiRtb00.SetWindowTextA(strRTB00); m_ctrlWsiRtb01.SetWindowTextA(strRTB01); + + strDiagnosisHeight.Format(_T("%d"), dDiagnosisHeight[0]); + m_editWSIHeight1.SetWindowTextA(strDiagnosisHeight); + + strDiagnosisHeight.Format(_T("%d"), dDiagnosisHeight[1]); + m_editWSIHeight2.SetWindowTextA(strDiagnosisHeight); + + strDiagnosisHeight.Format(_T("%d"), dDiagnosisHeight[2]); + m_editWSIHeight3.SetWindowTextA(strDiagnosisHeight); + + strDiagnosisHeight.Format(_T("%d"), dDiagnosisHeight[3]); + m_editWSIHeight4.SetWindowTextA(strDiagnosisHeight); + + strDiagnosisHeight.Format(_T("%d"), dDiagnosisHeight[4]); + m_editWSIHeight5.SetWindowTextA(strDiagnosisHeight); + + strDiagnosisHeight.Format(_T("%d"), dDiagnosisHeight[5]); + m_editWSIHeight6.SetWindowTextA(strDiagnosisHeight); + + strDiagnosisHeight.Format(_T("%d"), dDiagnosisHeight[6]); + m_editWSIHeight7.SetWindowTextA(strDiagnosisHeight); + + strDiagnosisHeight.Format(_T("%d"), dDiagnosisHeight[7]); + m_editWSIHeight8.SetWindowTextA(strDiagnosisHeight); + + strDiagnosisHeight.Format(_T("%d"), dDiagnosisHeight[8]); + m_editWSIHeight9.SetWindowTextA(strDiagnosisHeight); + + strDiagnosisHeight.Format(_T("%d"), dDiagnosisHeight[9]); + m_editWSIHeight10.SetWindowTextA(strDiagnosisHeight); + + strDiagnosisHeight.Format(_T("%d"), dDiagnosisHeight[10]); + m_editWSIHeight11.SetWindowTextA(strDiagnosisHeight); + + strDiagnosisHeight.Format(_T("%d"), dDiagnosisHeight[11]); + m_editWSIHeight12.SetWindowTextA(strDiagnosisHeight); + + strDiagnosisHeight.Format(_T("%d"), dDiagnosisHeight[12]); + m_editWSIHeight13.SetWindowTextA(strDiagnosisHeight); + + strDiagnosisHeight.Format(_T("%d"), dDiagnosisHeight[13]); + m_editWSIHeight14.SetWindowTextA(strDiagnosisHeight); + + strDiagnosisHeight.Format(_T("%d"), dDiagnosisHeight[14]); + m_editWSIHeight15.SetWindowTextA(strDiagnosisHeight); + + strDiagnosisHeight.Format(_T("%d"), dDiagnosisHeight[15]); + m_editWSIHeight16.SetWindowTextA(strDiagnosisHeight); + + strDiagnosisHeight.Format(_T("%d"), dDiagnosisHeight[16]); + m_editWSIHeight17.SetWindowTextA(strDiagnosisHeight); + + strDiagnosisHeight.Format(_T("%d"), dDiagnosisHeight[17]); + m_editWSIHeight18.SetWindowTextA(strDiagnosisHeight); + + strDiagnosisHeight.Format(_T("%d"), dDiagnosisHeight[18]); + m_editWSIHeight19.SetWindowTextA(strDiagnosisHeight); + + strDiagnosisHeight.Format(_T("%d"), dDiagnosisHeight[19]); + m_editWSIHeight20.SetWindowTextA(strDiagnosisHeight); } @@ -108,6 +218,8 @@ const CDiagnosisInfo* pSettingInfo = m_pDiagnosisManager->GetDiagnosisInfo(); if (pSettingInfo == NULL) return; + m_editWSIFirstStandard = pSettingInfo->GetWSIStandard(); + double nACC00 = dAcc00; double nACC01 = dAcc01; diff --git a/ReviewSystem/ReviewSystem/DlgSelfDiagnosis_Wsi.h b/ReviewSystem/ReviewSystem/DlgSelfDiagnosis_Wsi.h index 781a4da..22a364e 100644 --- a/ReviewSystem/ReviewSystem/DlgSelfDiagnosis_Wsi.h +++ b/ReviewSystem/ReviewSystem/DlgSelfDiagnosis_Wsi.h @@ -34,4 +34,25 @@ CEdit m_ctrlWsiRtb00; CEdit m_ctrlWsiRtb01; CButton m_btSimulation; + double m_editWSIFirstStandard; + CEdit m_editWSIHeight1; + CEdit m_editWSIHeight2; + CEdit m_editWSIHeight3; + CEdit m_editWSIHeight4; + CEdit m_editWSIHeight5; + CEdit m_editWSIHeight6; + CEdit m_editWSIHeight7; + CEdit m_editWSIHeight8; + CEdit m_editWSIHeight9; + CEdit m_editWSIHeight10; + CEdit m_editWSIHeight11; + CEdit m_editWSIHeight12; + CEdit m_editWSIHeight13; + CEdit m_editWSIHeight14; + CEdit m_editWSIHeight15; + CEdit m_editWSIHeight16; + CEdit m_editWSIHeight17; + CEdit m_editWSIHeight18; + CEdit m_editWSIHeight19; + CEdit m_editWSIHeight20; }; diff --git a/ReviewSystem/ReviewSystem/ReviewInterface.cpp b/ReviewSystem/ReviewSystem/ReviewInterface.cpp index 9c6774d..313cec6 100644 --- a/ReviewSystem/ReviewSystem/ReviewInterface.cpp +++ b/ReviewSystem/ReviewSystem/ReviewInterface.cpp @@ -2874,24 +2874,36 @@ double dAccdata = measureResut.dAccuracy; double dRbtdata = measureResut.dRepeatability; + double dDiagnosisHeight[10]; + + for (int i = 0; i < 10; i++) + { + dDiagnosisHeight[i] = measureResut.dDiagnosisHeight[i]; + } + if (nModuleIndex == 0) { m_pDiagnosisManager->GetDiagnosisResult_Wsi(0)->SetACC(dAccdata); m_pDiagnosisManager->GetDiagnosisResult_Wsi(0)->SetRTB(dRbtdata); + for (int i = 0; i < 10; i++) + { + m_pDiagnosisManager->GetDiagnosisResult_Wsi(0)->SetDiagnosisHeight(dDiagnosisHeight[i], i); + } m_vecWSIControl[0]->SendWsiAfmSafePosMove(); } else if (nModuleIndex == 1) { m_pDiagnosisManager->GetDiagnosisResult_Wsi(1)->SetACC(dAccdata); m_pDiagnosisManager->GetDiagnosisResult_Wsi(1)->SetRTB(dRbtdata); + for (int i = 0; i < 10; i++) + { + m_pDiagnosisManager->GetDiagnosisResult_Wsi(1)->SetDiagnosisHeight(dDiagnosisHeight[i], i); + } m_vecWSIControl[1]->SendWsiAfmSafePosMove(); } m_pDlgDiagnosis->m_pDlgWsi->UpdateWSIResult(nModuleIndex,dAccdata, dAccdata, dRbtdata, dRbtdata); - - - m_pDlgDiagnosis->m_pDiagnosisManager->setWSIVLSIEnd(true); } @@ -3508,6 +3520,16 @@ } +BOOL CReviewInterface::IDP2P_CheckManualMode() +{ + if (IsManualProcessMode() == TRUE) + { + return TRUE; + } + + return FALSE; +} + int CReviewInterface::IDP2P_GetSelectedModuleIndex() { return Module_GetSelectedModuleIndex(); diff --git a/ReviewSystem/ReviewSystem/ReviewInterface.h b/ReviewSystem/ReviewSystem/ReviewInterface.h index 95243e2..0d9175a 100644 --- a/ReviewSystem/ReviewSystem/ReviewInterface.h +++ b/ReviewSystem/ReviewSystem/ReviewInterface.h @@ -209,6 +209,7 @@ virtual void IDP2P_MotorGo(int nModuleIdx, double dPosX, double dPosY, BOOL bWaitReturn = FALSE); virtual BOOL IDP2P_GetMotionEnd(int nModuleIdx, int nTimeOut = -1); virtual BOOL IDP2P_IsGantryMotionEnd(int nModuleIdx); + virtual BOOL IDP2P_CheckManualMode(); // Squareness virtual int IDP2P_GetSelectedModuleIndex(); virtual int IDP2P_GetOrigionMotorDir(); diff --git a/ReviewSystem/ReviewSystem/ReviewSystem.rc b/ReviewSystem/ReviewSystem/ReviewSystem.rc index 458c5c9..0a9c0ae 100644 --- a/ReviewSystem/ReviewSystem/ReviewSystem.rc +++ b/ReviewSystem/ReviewSystem/ReviewSystem.rc @@ -576,42 +576,72 @@ BEGIN GROUPBOX "File History",IDC_STATIC,7,286,421,86 LISTBOX IDC_LIST,14,297,409,69,LBS_SORT | LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_TABSTOP - GROUPBOX "Data History",IDC_STATIC,292,7,136,278 - CONTROL "",IDC_GRID_GANTRY_DATA_HISTORY,"MFCGridCtrl",WS_TABSTOP,297,19,126,260 - LTEXT "Module Index :",IDC_STATIC,21,29,48,8 - COMBOBOX IDC_COMBO_MODULE_INDEX,71,28,48,34,CBS_DROPDOWN | CBS_SORT | WS_VSCROLL | WS_TABSTOP - GROUPBOX "Measure Data",IDC_STATIC,7,7,280,278 - CONTROL IDB_BITMAP_MARK,IDC_STATIC,"Static",SS_BITMAP,98,67,37,37 - CONTROL IDB_BITMAP_MARK,IDC_STATIC,"Static",SS_BITMAP,98,205,37,37 - CONTROL IDB_BITMAP_GANTRY,IDC_STATIC,"Static",SS_BITMAP,40,70,39,168 - LTEXT "Theta(θ) :",IDC_STATIC,40,242,38,8 - EDITTEXT IDC_EDIT_GANTRY_THETA,40,253,40,14,ES_AUTOHSCROLL - RTEXT "[°]",IDC_STATIC,80,255,10,8 - LTEXT ": Motor",IDC_STATIC,155,174,24,8 - EDITTEXT IDC_EDIT_GANTRY_MOTOR_X,82,116,35,14,ES_AUTOHSCROLL - EDITTEXT IDC_EDIT_GANTRY_MOTOR_Y,118,116,35,14,ES_AUTOHSCROLL - LTEXT ": Pixel",IDC_STATIC,155,190,24,8 - EDITTEXT IDC_EDIT_GANTRY_PIXEL_X,82,132,35,14,ES_AUTOHSCROLL - EDITTEXT IDC_EDIT_GANTRY_PIXEL_Y,118,132,35,14,ES_AUTOHSCROLL - EDITTEXT IDC_EDIT_GANTRY_MOTOR_X2,82,172,35,14,ES_AUTOHSCROLL - EDITTEXT IDC_EDIT_GANTRY_MOTOR_Y2,118,172,35,14,ES_AUTOHSCROLL - EDITTEXT IDC_EDIT_GANTRY_PIXEL_X2,82,188,35,14,ES_AUTOHSCROLL - EDITTEXT IDC_EDIT_GANTRY_PIXEL_Y2,118,188,35,14,ES_AUTOHSCROLL - GROUPBOX "Measure Data",IDC_STATIC,7,7,280,278 - CTEXT "X",IDC_STATIC,95,106,8,8 - CTEXT "Y",IDC_STATIC,130,106,8,8 - CTEXT "X",IDC_STATIC,96,162,8,8 - CTEXT "Y",IDC_STATIC,131,162,8,8 - PUSHBUTTON "Simulation",IDC_BUTTON_SIMULATION2,224,253,50,14 - LTEXT ": Motor",IDC_STATIC,245,119,24,8 - LTEXT ": Pixel",IDC_STATIC,245,135,24,8 - CONTROL IDB_BITMAP_MARK,IDC_STATIC,"Static",SS_BITMAP,189,67,37,37 - EDITTEXT IDC_EDIT_GANTRY_MOTOR_X3,172,116,35,14,ES_AUTOHSCROLL - EDITTEXT IDC_EDIT_GANTRY_MOTOR_Y3,208,116,35,14,ES_AUTOHSCROLL - EDITTEXT IDC_EDIT_GANTRY_PIXEL_X3,172,132,35,14,ES_AUTOHSCROLL - EDITTEXT IDC_EDIT_GANTRY_PIXEL_Y3,208,132,35,14,ES_AUTOHSCROLL - CTEXT "X",IDC_STATIC,187,106,8,8 - CTEXT "Y",IDC_STATIC,221,106,8,8 + GROUPBOX "Data History",IDC_STATIC,337,7,91,278 + CONTROL "",IDC_GRID_GANTRY_DATA_HISTORY,"MFCGridCtrl",WS_TABSTOP,342,19,81,260 + COMBOBOX IDC_COMBO_MODULE_INDEX,123,18,48,34,CBS_DROPDOWN | CBS_SORT | WS_VSCROLL | WS_TABSTOP + GROUPBOX "Measure Data",IDC_STATIC,7,7,326,278 + CONTROL IDB_BITMAP_MARK,IDC_STATIC,"Static",SS_BITMAP,25,59,37,37 + CONTROL IDB_BITMAP_MARK,IDC_STATIC,"Static",SS_BITMAP,25,197,37,37 + LTEXT "Left Module Theta(θ) :",IDC_STATIC,17,264,74,8 + EDITTEXT IDC_EDIT_GANTRY_THETA,92,262,40,14,ES_AUTOHSCROLL + RTEXT "[°]",IDC_STATIC,135,264,10,8 + LTEXT ": Motor",IDC_STATIC,82,166,24,8 + EDITTEXT IDC_EDIT_GANTRY_MOTOR_X,9,108,35,14,ES_AUTOHSCROLL + EDITTEXT IDC_EDIT_GANTRY_MOTOR_Y,45,108,35,14,ES_AUTOHSCROLL + LTEXT ": Pixel",IDC_STATIC,82,182,24,8 + EDITTEXT IDC_EDIT_GANTRY_PIXEL_X,9,124,35,14,ES_AUTOHSCROLL + EDITTEXT IDC_EDIT_GANTRY_PIXEL_Y,45,124,35,14,ES_AUTOHSCROLL + EDITTEXT IDC_EDIT_GANTRY_MOTOR_X2,9,164,35,14,ES_AUTOHSCROLL + EDITTEXT IDC_EDIT_GANTRY_MOTOR_Y2,45,164,35,14,ES_AUTOHSCROLL + EDITTEXT IDC_EDIT_GANTRY_PIXEL_X2,9,180,35,14,ES_AUTOHSCROLL + EDITTEXT IDC_EDIT_GANTRY_PIXEL_Y2,45,180,35,14,ES_AUTOHSCROLL + GROUPBOX "Measure Data",IDC_STATIC,7,7,327,278 + CTEXT "X",IDC_STATIC,22,98,8,8 + CTEXT "Y",IDC_STATIC,57,98,8,8 + CTEXT "X",IDC_STATIC,23,154,8,8 + CTEXT "Y",IDC_STATIC,58,154,8,8 + PUSHBUTTON "Simulation",IDC_BUTTON_SIMULATION2,11,18,50,14 + LTEXT ": Motor",IDC_STATIC,156,111,24,8 + LTEXT ": Pixel",IDC_STATIC,156,127,24,8 + CONTROL IDB_BITMAP_MARK,IDC_STATIC,"Static",SS_BITMAP,100,59,37,37 + EDITTEXT IDC_EDIT_GANTRY_MOTOR_X3,83,108,35,14,ES_AUTOHSCROLL + EDITTEXT IDC_EDIT_GANTRY_MOTOR_Y3,119,108,35,14,ES_AUTOHSCROLL + EDITTEXT IDC_EDIT_GANTRY_PIXEL_X3,83,124,35,14,ES_AUTOHSCROLL + EDITTEXT IDC_EDIT_GANTRY_PIXEL_Y3,119,124,35,14,ES_AUTOHSCROLL + CTEXT "X",IDC_STATIC,98,98,8,8 + CTEXT "Y",IDC_STATIC,132,98,8,8 + CONTROL IDB_BITMAP_MARK,IDC_STATIC,"Static",SS_BITMAP,199,58,37,37 + CONTROL IDB_BITMAP_MARK,IDC_STATIC,"Static",SS_BITMAP,199,196,37,37 + EDITTEXT IDC_EDIT_GANTRY_MOTOR_X4,183,107,35,14,ES_AUTOHSCROLL + EDITTEXT IDC_EDIT_GANTRY_MOTOR_Y4,219,107,35,14,ES_AUTOHSCROLL + EDITTEXT IDC_EDIT_GANTRY_PIXEL_X4,183,123,35,14,ES_AUTOHSCROLL + EDITTEXT IDC_EDIT_GANTRY_PIXEL_Y4,219,123,35,14,ES_AUTOHSCROLL + EDITTEXT IDC_EDIT_GANTRY_MOTOR_X5,183,163,35,14,ES_AUTOHSCROLL + EDITTEXT IDC_EDIT_GANTRY_MOTOR_Y5,219,163,35,14,ES_AUTOHSCROLL + EDITTEXT IDC_EDIT_GANTRY_PIXEL_X5,183,179,35,14,ES_AUTOHSCROLL + EDITTEXT IDC_EDIT_GANTRY_PIXEL_Y5,219,179,35,14,ES_AUTOHSCROLL + CTEXT "X",IDC_STATIC,196,97,8,8 + CTEXT "Y",IDC_STATIC,231,97,8,8 + CTEXT "X",IDC_STATIC,197,153,8,8 + CTEXT "Y",IDC_STATIC,232,153,8,8 + CONTROL IDB_BITMAP_MARK,IDC_STATIC,"Static",SS_BITMAP,274,58,37,37 + EDITTEXT IDC_EDIT_GANTRY_MOTOR_X6,257,107,35,14,ES_AUTOHSCROLL + EDITTEXT IDC_EDIT_GANTRY_MOTOR_Y6,293,107,35,14,ES_AUTOHSCROLL + EDITTEXT IDC_EDIT_GANTRY_PIXEL_X6,257,123,35,14,ES_AUTOHSCROLL + EDITTEXT IDC_EDIT_GANTRY_PIXEL_Y6,293,123,35,14,ES_AUTOHSCROLL + CTEXT "X",IDC_STATIC,272,97,8,8 + CTEXT "Y",IDC_STATIC,306,97,8,8 + GROUPBOX "Right Module",IDC_STATIC,180,36,153,202 + GROUPBOX "Left Module",IDC_STATIC,7,36,173,203 + LTEXT "Right Module Theta(θ) :",IDC_STATIC,186,264,78,8 + EDITTEXT IDC_EDIT_GANTRY_THETA2,264,262,40,14,ES_AUTOHSCROLL + RTEXT "[°]",IDC_STATIC,307,264,10,8 + LTEXT "First Setting Standard(θ) :",IDC_STATIC,18,247,83,8 + EDITTEXT IDC_EDIT_SQUARENESS_FIRSTSETTING,103,245,39,13,ES_AUTOHSCROLL + RTEXT "[°]",IDC_STATIC,145,247,10,8 + LTEXT "First Setting Standard(θ) :",IDC_STATIC,185,247,83,8 + EDITTEXT IDC_EDIT_SQUARENESS_FIRSTSETTING2,271,245,39,13,ES_AUTOHSCROLL + RTEXT "[°]",IDC_STATIC,313,247,10,8 END IDD_DLG_SELF_DIAGNOSIS_FLATNESS DIALOGEX 0, 0, 435, 379 @@ -645,8 +675,8 @@ GROUPBOX "메뉴얼 조작",IDC_STATIC,18,21,80,40 GROUPBOX "File History",IDC_STATIC,5,245,421,86 LISTBOX IDC_LIST,10,257,413,69,LBS_SORT | LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_TABSTOP - GROUPBOX "Data",IDC_STATIC,11,127,409,116 - CONTROL "ㄱ",IDC_GRID_WSI_RESULT_DATA,"MFCGridCtrl",WS_TABSTOP,17,137,400,100 + GROUPBOX "Data",IDC_STATIC,172,16,248,227 + CONTROL "ㄱ",IDC_GRID_WSI_RESULT_DATA,"MFCGridCtrl",WS_TABSTOP,409,231,6,6 LTEXT "Module 0",IDC_STATIC,37,80,30,8 LTEXT "Module 1",IDC_STATIC,37,95,30,8 LTEXT "ACC",IDC_STATIC,91,66,14,8 @@ -655,6 +685,71 @@ EDITTEXT IDC_EDIT_WSI_RTB_00,122,77,40,14,ES_AUTOHSCROLL EDITTEXT IDC_EDIT_WSI_ACC_01,76,95,40,14,ES_AUTOHSCROLL EDITTEXT IDC_EDIT_WSI_RTB_01,123,94,40,14,ES_AUTOHSCROLL + LTEXT "WSI Standard (um)",IDC_STATIC,32,113,65,10 + EDITTEXT IDC_EDIT_WSI_FIRST_STANDARD,97,112,40,15,ES_AUTOHSCROLL + LTEXT "um",IDC_STATIC,267,33,19,12 + LTEXT "WSI Height 1",IDC_STATIC,179,34,43,8 + LTEXT "WSI Height 2",IDC_STATIC,179,48,43,8 + LTEXT "WSI Height 3",IDC_STATIC,179,62,43,8 + LTEXT "WSI Height 4",IDC_STATIC,179,76,43,8 + LTEXT "WSI Height 5",IDC_STATIC,179,90,43,8 + LTEXT "WSI Height 6",IDC_STATIC,179,104,43,8 + LTEXT "WSI Height 7",IDC_STATIC,179,117,43,8 + LTEXT "WSI Height 8",IDC_STATIC,179,132,43,8 + LTEXT "WSI Height 9",IDC_STATIC,179,145,43,8 + LTEXT "WSI Height 10",IDC_STATIC,179,158,47,8 + EDITTEXT IDC_EDIT_WSI_HEIGHT1,227,33,39,12,ES_AUTOHSCROLL + EDITTEXT IDC_EDIT_WSI_HEIGHT2,227,47,39,12,ES_AUTOHSCROLL + EDITTEXT IDC_EDIT_WSI_HEIGHT3,227,61,39,12,ES_AUTOHSCROLL + EDITTEXT IDC_EDIT_WSI_HEIGHT4,226,75,39,12,ES_AUTOHSCROLL + EDITTEXT IDC_EDIT_WSI_HEIGHT5,226,89,39,12,ES_AUTOHSCROLL + EDITTEXT IDC_EDIT_WSI_HEIGHT6,226,103,39,12,ES_AUTOHSCROLL + EDITTEXT IDC_EDIT_WSI_HEIGHT7,226,117,39,12,ES_AUTOHSCROLL + EDITTEXT IDC_EDIT_WSI_HEIGHT8,226,131,39,12,ES_AUTOHSCROLL + EDITTEXT IDC_EDIT_WSI_HEIGHT9,226,145,39,12,ES_AUTOHSCROLL + EDITTEXT IDC_EDIT_WSI_HEIGHT10,226,158,39,12,ES_AUTOHSCROLL + LTEXT "um",IDC_STATIC,148,121,19,12 + LTEXT "um",IDC_STATIC,267,47,19,12 + LTEXT "um",IDC_STATIC,267,61,19,12 + LTEXT "um",IDC_STATIC,267,75,19,12 + LTEXT "um",IDC_STATIC,267,89,19,12 + LTEXT "um",IDC_STATIC,267,103,19,12 + LTEXT "um",IDC_STATIC,267,117,19,12 + LTEXT "um",IDC_STATIC,267,131,19,12 + LTEXT "um",IDC_STATIC,267,145,19,12 + LTEXT "um",IDC_STATIC,267,159,19,12 + LTEXT "um",IDC_STATIC,387,33,19,12 + LTEXT "WSI Height 1",IDC_STATIC,299,34,43,8 + LTEXT "WSI Height 2",IDC_STATIC,299,48,43,8 + LTEXT "WSI Height 3",IDC_STATIC,299,62,43,8 + LTEXT "WSI Height 4",IDC_STATIC,299,76,43,8 + LTEXT "WSI Height 5",IDC_STATIC,299,90,43,8 + LTEXT "WSI Height 6",IDC_STATIC,299,104,43,8 + LTEXT "WSI Height 7",IDC_STATIC,299,117,43,8 + LTEXT "WSI Height 8",IDC_STATIC,299,132,43,8 + LTEXT "WSI Height 9",IDC_STATIC,299,145,43,8 + LTEXT "WSI Height 10",IDC_STATIC,299,158,47,8 + EDITTEXT IDC_EDIT_WSI_HEIGHT11,347,33,39,12,ES_AUTOHSCROLL + EDITTEXT IDC_EDIT_WSI_HEIGHT12,347,47,39,12,ES_AUTOHSCROLL + EDITTEXT IDC_EDIT_WSI_HEIGHT13,347,61,39,12,ES_AUTOHSCROLL + EDITTEXT IDC_EDIT_WSI_HEIGHT14,346,75,39,12,ES_AUTOHSCROLL + EDITTEXT IDC_EDIT_WSI_HEIGHT15,346,89,39,12,ES_AUTOHSCROLL + EDITTEXT IDC_EDIT_WSI_HEIGHT16,346,103,39,12,ES_AUTOHSCROLL + EDITTEXT IDC_EDIT_WSI_HEIGHT17,346,117,39,12,ES_AUTOHSCROLL + EDITTEXT IDC_EDIT_WSI_HEIGHT18,346,131,39,12,ES_AUTOHSCROLL + EDITTEXT IDC_EDIT_WSI_HEIGHT19,346,145,39,12,ES_AUTOHSCROLL + EDITTEXT IDC_EDIT_WSI_HEIGHT20,346,158,39,12,ES_AUTOHSCROLL + LTEXT "um",IDC_STATIC,387,47,19,12 + LTEXT "um",IDC_STATIC,387,61,19,12 + LTEXT "um",IDC_STATIC,387,75,19,12 + LTEXT "um",IDC_STATIC,387,89,19,12 + LTEXT "um",IDC_STATIC,387,103,19,12 + LTEXT "um",IDC_STATIC,387,117,19,12 + LTEXT "um",IDC_STATIC,387,131,19,12 + LTEXT "um",IDC_STATIC,387,145,19,12 + LTEXT "um",IDC_STATIC,387,159,19,12 + GROUPBOX "Left",IDC_STATIC,176,24,105,154 + GROUPBOX "Right",IDC_STATIC,296,24,105,154 END IDD_DLG_SELF_DIAGNOSIS_SETTING DIALOGEX 0, 0, 435, 379 @@ -666,12 +761,12 @@ LTEXT "파일 위치 :",IDC_STATIC,18,36,31,8 PUSHBUTTON "Save",IDC_BUTTON_SAVE,371,351,50,14 PUSHBUTTON "Load",IDC_BUTTON_LOAD,320,351,50,14 - EDITTEXT IDC_EDIT_PANEL_COUNT_SQUARENESS,67,94,40,14,ES_AUTOHSCROLL - EDITTEXT IDC_EDIT_CAMERA_RESOLUTION,183,94,40,14,ES_AUTOHSCROLL - EDITTEXT IDC_EDIT_JUDGE_DATA_DEGREE,67,111,40,14,ES_AUTOHSCROLL - EDITTEXT IDC_EDIT_MODULE_COUNT,67,127,40,14,ES_AUTOHSCROLL - EDITTEXT IDC_EDIT_CAMERA_FRAME_WIDTH,183,111,40,14,ES_AUTOHSCROLL - EDITTEXT IDC_EDIT_CAMERA_FRAME_HEIGHT,183,127,40,14,ES_AUTOHSCROLL + EDITTEXT IDC_EDIT_PANEL_COUNT_SQUARENESS,67,81,40,14,ES_AUTOHSCROLL + EDITTEXT IDC_EDIT_CAMERA_RESOLUTION,183,81,40,14,ES_AUTOHSCROLL + EDITTEXT IDC_EDIT_JUDGE_DATA_DEGREE,67,97,40,14,ES_AUTOHSCROLL + EDITTEXT IDC_EDIT_MODULE_COUNT,67,113,40,14,ES_AUTOHSCROLL + EDITTEXT IDC_EDIT_CAMERA_FRAME_WIDTH,183,96,40,14,ES_AUTOHSCROLL + EDITTEXT IDC_EDIT_CAMERA_FRAME_HEIGHT,183,112,40,14,ES_AUTOHSCROLL EDITTEXT IDC_EDIT_REVIEW_PANEL_POS_X,43,184,40,14,ES_AUTOHSCROLL EDITTEXT IDC_EDIT_REVIEW_PANEL_POS_Y,85,184,40,14,ES_AUTOHSCROLL EDITTEXT IDC_EDIT_REVIEW_PANEL_POS_X3,43,200,40,14,ES_AUTOHSCROLL @@ -685,47 +780,47 @@ EDITTEXT IDC_EDIT_REVIEW_PANEL_POS_X6,151,216,40,14,ES_AUTOHSCROLL EDITTEXT IDC_EDIT_REVIEW_PANEL_POS_Y6,193,216,40,14,ES_AUTOHSCROLL EDITTEXT IDC_EDIT_PANEL_COUNT_WSI,330,94,40,14,ES_AUTOHSCROLL - EDITTEXT IDC_EDIT_JUDGE_DATA_3SIGMA,330,111,40,14,ES_AUTOHSCROLL + EDITTEXT IDC_EDIT_JUDGE_DATA_3SIGMA,330,113,40,14,ES_AUTOHSCROLL EDITTEXT IDC_EDIT_WSI_PANEL_POS_X,294,181,40,14,ES_AUTOHSCROLL EDITTEXT IDC_EDIT_WSI_PANEL_POS_Y,336,181,40,14,ES_AUTOHSCROLL EDITTEXT IDC_EDIT_WSI_PANEL_POS_X2,294,197,40,14,ES_AUTOHSCROLL EDITTEXT IDC_EDIT_WSI_PANEL_POS_Y2,336,197,40,14,ES_AUTOHSCROLL - EDITTEXT IDC_EDIT_AF_DELAY,67,268,40,14,ES_AUTOHSCROLL - EDITTEXT IDC_EDIT_JUDGE_DATA_Z_RANGE,67,284,40,14,ES_AUTOHSCROLL - EDITTEXT IDC_EDIT_GLASS_SIZE_X,183,268,40,14,ES_AUTOHSCROLL - EDITTEXT IDC_EDIT_GLASS_SIZE_Y,183,284,40,14,ES_AUTOHSCROLL - COMBOBOX IDC_COMBO_FLANTESS_MODE,67,308,48,62,CBS_DROPDOWN | WS_VSCROLL | WS_TABSTOP - GROUPBOX "Setting",IDC_STATIC,7,60,414,282 - RTEXT "Resolution :",IDC_STATIC,143,96,39,8 - RTEXT "Panel Count :",IDC_STATIC,23,96,43,8 - RTEXT "Judge Data :",IDC_STATIC,26,114,40,10 - RTEXT "AF Delay :",IDC_STATIC,34,273,32,8 - RTEXT "Judge Data :\n(Z Range)",IDC_STATIC,24,287,42,21 - RTEXT "Mode :",IDC_STATIC,43,309,23,8 - RTEXT "Range Count :",IDC_STATIC,136,309,46,8 - RTEXT "GlassSizeX :",IDC_STATIC,146,273,36,8 - RTEXT "GlassSizeY :",IDC_STATIC,145,287,37,8 + EDITTEXT IDC_EDIT_AF_DELAY,67,275,40,14,ES_AUTOHSCROLL + EDITTEXT IDC_EDIT_JUDGE_DATA_Z_RANGE,67,291,40,14,ES_AUTOHSCROLL + EDITTEXT IDC_EDIT_GLASS_SIZE_X,183,275,40,14,ES_AUTOHSCROLL + EDITTEXT IDC_EDIT_GLASS_SIZE_Y,183,291,40,14,ES_AUTOHSCROLL + COMBOBOX IDC_COMBO_FLANTESS_MODE,67,315,48,62,CBS_DROPDOWN | WS_VSCROLL | WS_TABSTOP + GROUPBOX "Setting",IDC_STATIC,7,67,414,282 + RTEXT "Resolution :",IDC_STATIC,143,84,39,8 + RTEXT "Panel Count :",IDC_STATIC,23,83,43,8 + RTEXT "Judge Data :",IDC_STATIC,26,101,40,10 + RTEXT "AF Delay :",IDC_STATIC,34,280,32,8 + RTEXT "Judge Data :\n(Z Range)",IDC_STATIC,24,294,42,21 + RTEXT "Mode :",IDC_STATIC,43,316,23,8 + RTEXT "Range Count :",IDC_STATIC,136,316,46,8 + RTEXT "GlassSizeX :",IDC_STATIC,146,280,36,8 + RTEXT "GlassSizeY :",IDC_STATIC,145,294,37,8 RTEXT "Panel Count : ",IDC_STATIC,286,96,43,8 RTEXT "Judge Data :\n(3sigma) ",IDC_STATIC,287,114,42,17 - GROUPBOX "직각도",IDC_STATIC,15,83,233,166 - GROUPBOX "평탄도",IDC_STATIC,15,253,233,80 - EDITTEXT IDC_EDIT_RANGE_COUNT_FLATNESS,183,308,40,14,ES_AUTOHSCROLL | WS_DISABLED + GROUPBOX "직각도",IDC_STATIC,15,75,233,176 + GROUPBOX "평탄도",IDC_STATIC,15,252,233,80 + EDITTEXT IDC_EDIT_RANGE_COUNT_FLATNESS,183,315,40,14,ES_AUTOHSCROLL | WS_DISABLED GROUPBOX "WSI",IDC_STATIC,254,83,164,146 - RTEXT "Frame Width :",IDC_STATIC,135,114,47,8 - RTEXT "Frame Height :",IDC_STATIC,127,131,55,8 + RTEXT "Frame Width :",IDC_STATIC,135,99,47,8 + RTEXT "Frame Height :",IDC_STATIC,127,115,55,8 RTEXT "[nm]",IDC_STATIC,372,114,16,8 - RTEXT "[um]",IDC_STATIC,226,97,16,8 + RTEXT "[um]",IDC_STATIC,226,81,16,8 + RTEXT "[px]",IDC_STATIC,226,99,14,8 RTEXT "[px]",IDC_STATIC,226,114,14,8 - RTEXT "[px]",IDC_STATIC,226,129,14,8 - RTEXT "[°]",IDC_STATIC,109,114,10,8 - LTEXT "[ms]",IDC_STATIC,109,273,15,8 - LTEXT "[um]",IDC_STATIC,109,287,16,8 - LTEXT "[ea]",IDC_STATIC,226,311,14,8 - LTEXT "[mm]",IDC_STATIC,226,273,18,8 - LTEXT "[mm]",IDC_STATIC,226,287,18,8 - LTEXT "[ea]",IDC_STATIC,109,97,14,8 + RTEXT "[°]",IDC_STATIC,109,99,10,8 + LTEXT "[ms]",IDC_STATIC,109,280,15,8 + LTEXT "[um]",IDC_STATIC,109,294,16,8 + LTEXT "[ea]",IDC_STATIC,226,318,14,8 + LTEXT "[mm]",IDC_STATIC,226,280,18,8 + LTEXT "[mm]",IDC_STATIC,226,294,18,8 + LTEXT "[ea]",IDC_STATIC,109,84,14,8 LTEXT "[ea]",IDC_STATIC,373,97,14,8 - RTEXT "ModuleCount :",IDC_STATIC,20,131,46,8 + RTEXT "ModuleCount :",IDC_STATIC,20,117,46,8 CTEXT "Module1 Panel",IDC_STATIC,62,163,46,8 GROUPBOX "Panel Motor Position",IDC_STATIC,22,148,218,94 CTEXT "1",IDC_STATIC,34,186,8,8 @@ -745,6 +840,17 @@ CTEXT "2",IDC_STATIC,284,200,8,8 CTEXT "3",IDC_STATIC,34,219,8,8 CTEXT "3",IDC_STATIC,141,219,8,8 + CONTROL "Use Skip Mode",IDC_CHECK_SELF_DIAGNOSIS_FLATNESS_SKIP, + "Button",BS_AUTOCHECKBOX | WS_TABSTOP,66,260,62,10 + LTEXT "Left Standard :",IDC_STATIC,17,133,49,9 + LTEXT "Standard :",IDC_STATIC,296,135,33,9 + EDITTEXT IDC_EDIT_SQUARENESS_STANDARD,67,130,40,14,ES_AUTOHSCROLL + EDITTEXT IDC_EDIT_WSI_STANDARD,330,132,40,14,ES_AUTOHSCROLL + RTEXT "[nm]",IDC_STATIC,372,134,16,8 + RTEXT "[°]",IDC_STATIC,108,133,10,8 + LTEXT "Right Standard :",IDC_STATIC,131,132,53,9 + EDITTEXT IDC_EDIT_SQUARENESS_STANDARD2,183,130,40,14,ES_AUTOHSCROLL + RTEXT "[°]",IDC_STATIC,226,132,10,8 END IDD_DLG_TAB_DEFECT_INFO DIALOGEX 0, 0, 539, 282 diff --git a/ReviewSystem/ReviewSystem/SequenceProcessor_CPJT.cpp b/ReviewSystem/ReviewSystem/SequenceProcessor_CPJT.cpp index 80e14e9..4c7a1f9 100644 --- a/ReviewSystem/ReviewSystem/SequenceProcessor_CPJT.cpp +++ b/ReviewSystem/ReviewSystem/SequenceProcessor_CPJT.cpp @@ -8713,14 +8713,22 @@ break; case PCControlRecv_Autodiagnosis: { - m_pSP2P->ISP2P_DisplayMessage(_T("[PCControl_Signal] Diagno start => %d"), bSignalOn); + //#3514_LYW_CF AOI Review 자가진단 기능 개선_START + CSignalControl* pSignalControl = m_pSP2P->ISP2P_GetSignalControl(); + CString strDiagnosisMode; + pSignalControl->ReadData(_T("11160"), 2, strDiagnosisMode); + int nDiagnosisMode = atoi(strDiagnosisMode); + //#3514_LYW_CF AOI Review 자가진단 기능 개선_END + + m_pSP2P->ISP2P_DisplayMessage(_T("[PCControl_Signal] Diagno start => %d, DiagnosisMode => %d"), bSignalOn, nDiagnosisMode); if (bSignalOn) { bResult = SendSignalToSignalControl(PCControlSendSignalIndex_DiagnoAck, 0); m_pSP2P->ISP2P_GetDlgDiagnosis()->ShowWindow(SW_SHOW); - m_pSP2P->ISP2P_GetDiagnosisManager()->RecvSignalToSignalControl(0, 0); + m_pSP2P->ISP2P_GetDiagnosisManager()->RecvSignalToSignalControl(0, nDiagnosisMode); } + //#3514_LYW_CF AOI Review 자가진단 기능 개선_END else bResult = SendSignalOffToSignalControl(PCControlSendSignalIndex_DiagnoAck, 0); diff --git a/ReviewSystem/ReviewSystem/resource.h b/ReviewSystem/ReviewSystem/resource.h index 5ff1b94..0ae58b7 100644 --- a/ReviewSystem/ReviewSystem/resource.h +++ b/ReviewSystem/ReviewSystem/resource.h @@ -87,6 +87,7 @@ #define IDC_BUTTON_UI_LEFT 1004 #define IDC_CHECK_OFFSET_MODE 1004 #define IDC_IMAGE_ROTATION 1004 +#define IDC_CHECK_SELF_DIAGNOSIS_FLATNESS_SKIP 1004 #define IDC_SLIDER1 1005 #define IDC_SLIDER_LIGHT_LEVEL 1005 #define IDC_RADIO_MAP_TYPE_0 1005 @@ -251,31 +252,45 @@ #define IDC_EDIT4 1088 #define IDC_EDIT_PANEL_COUNT_SQUARENESS 1089 #define IDC_EDIT_SCAN_COUNT 1089 +#define IDC_EDIT_WSI_HEIGHT4 1089 #define IDC_BUTTON_GLASS_GO_XY 1090 #define IDC_EDIT_REVIEW_CAMCOUNT 1090 +#define IDC_EDIT_WSI_HEIGHT5 1090 #define IDC_BUTTON_TEST1 1091 #define IDC_KEY_JOD_MOVE 1091 #define IDC_EDIT_JUDGE_DATA_Z_RANGE 1091 #define IDC_EDIT16 1091 #define IDC_EDIT_SETTINGFILE_PATH 1091 +#define IDC_EDIT_WSI_HEIGHT6 1091 #define IDC_BUTTON_GLASS_GO_XY3 1092 #define IDC_BUTTON_TEST2 1092 #define IDC_EDIT_XPOS_COUNT 1092 +#define IDC_EDIT_WSI_HEIGHT7 1092 #define IDC_CHECK_AFM_TRACK 1093 #define IDC_EDIT_RANGE_COUNT_FLATNESS 1093 +#define IDC_EDIT_WSI_HEIGHT8 1093 #define IDC_BUTTON_GLASS_GO_XY2 1094 #define IDC_BUTTON_GLASSCENTER_GO_XY 1094 #define IDC_EDIT_GLASS_SIZE_X 1094 +#define IDC_EDIT_WSI_HEIGHT9 1094 #define IDC_EDIT_GLASS_SIZE_Y 1095 +#define IDC_EDIT_WSI_HEIGHT10 1095 #define IDC_EDIT_PANEL_COUNT_WSI 1096 +#define IDC_EDIT_WSI_HEIGHT14 1096 #define IDC_EDIT_JUDGE_DATA_3SIGMA 1097 +#define IDC_EDIT_WSI_HEIGHT15 1097 #define IDC_EDIT_WSI_PANEL_POS_X 1098 +#define IDC_EDIT_WSI_HEIGHT16 1098 #define IDC_EDIT_WSI_PANEL_POS_Y 1099 +#define IDC_EDIT_WSI_HEIGHT17 1099 #define IDC_STATIC_JOG_SPEED 1100 #define IDC_EDIT_WSI_PANEL_POS_X2 1100 +#define IDC_EDIT_WSI_HEIGHT18 1100 #define IDC_STATIC_LIGHT_LEVEL 1101 #define IDC_EDIT_WSI_PANEL_POS_Y2 1101 +#define IDC_EDIT_WSI_HEIGHT19 1101 #define IDC_EDIT_REVIEW_PANEL_POS_X 1102 +#define IDC_EDIT_WSI_HEIGHT20 1102 #define IDC_EDIT_REVIEW_PANEL_POS_Y 1103 #define IDC_RADIO_ZOOM_LEVEL_4 1104 #define IDC_EDIT_REVIEW_PANEL_POS_X2 1104 @@ -352,6 +367,7 @@ #define IDC_EDIT_GANTRY_THETA 1142 #define IDC_GRID_GANTRY_DATA_HISTORY 1143 #define IDC_EDIT_MODULE_COUNT 1144 +#define IDC_EDIT_GANTRY_THETA2 1144 #define IDC_EDIT_GANTRY_MOTOR_X 1145 #define IDC_GRID_WSI_RESULT_DATA 1145 #define IDC_EDIT_GANTRY_MOTOR_Y 1146 @@ -376,20 +392,44 @@ #define IDC_EDIT_GANTRY_PIXEL_Y3 1156 #define IDC_EDIT_CHANGE_TARGET_XPOS 1156 #define IDC_EDIT_CHANGE_TARGET_YPOS 1157 +#define IDC_EDIT_GANTRY_MOTOR_X4 1157 #define IDC_BUTTON5 1158 +#define IDC_EDIT_GANTRY_MOTOR_Y4 1158 #define IDC_EDIT_OFFSET_Y_VALUE 1159 +#define IDC_EDIT_GANTRY_PIXEL_X4 1159 #define IDC_EDIT_CAMERA_COUNT 1160 +#define IDC_EDIT_GANTRY_PIXEL_Y4 1160 #define IDC_PROGRESS_PROCESS 1161 +#define IDC_EDIT_GANTRY_MOTOR_X5 1161 #define IDC_EDIT_MOTOR_XPOS 1162 +#define IDC_EDIT_GANTRY_MOTOR_Y5 1162 #define IDC_EDIT_MOTOR_YPOS 1163 +#define IDC_EDIT_GANTRY_PIXEL_X5 1163 #define IDC_BUTTON6 1164 +#define IDC_EDIT_GANTRY_PIXEL_Y5 1164 #define IDC_TAB_HISTORY_CONTROL 1165 +#define IDC_EDIT_GANTRY_MOTOR_X6 1165 #define IDC_LIST_HISTORY_DEFECT 1166 +#define IDC_EDIT_GANTRY_MOTOR_Y6 1166 +#define IDC_EDIT_GANTRY_PIXEL_X6 1167 #define IDC_STATIC_MAP 1168 +#define IDC_EDIT_GANTRY_PIXEL_Y6 1168 #define IDC_GRID_ALIGN_ORIGIN_INFO 1170 #define IDC_GRID_ALIGN_HISTORY_INFO 1171 #define IDC_ALIGN_GRID_ORIGIN_INFO 1173 #define IDC_ALIGN_GRID_ALIGN_INFO 1174 +#define IDC_EDIT_SQUARENESS_STANDARD 1175 +#define IDC_EDIT_WSI_STANDARD 1176 +#define IDC_EDIT_SQUARENESS_FIRSTSETTING 1176 +#define IDC_EDIT_WSI_FIRST_STANDARD 1177 +#define IDC_EDIT_SQUARENESS_STANDARD2 1177 +#define IDC_EDIT_SQUARENESS_FIRSTSETTING2 1177 +#define IDC_EDIT_WSI_HEIGHT1 1178 +#define IDC_EDIT_WSI_HEIGHT2 1179 +#define IDC_EDIT_WSI_HEIGHT3 1180 +#define IDC_EDIT_WSI_HEIGHT11 1181 +#define IDC_EDIT_WSI_HEIGHT12 1182 +#define IDC_EDIT_WSI_HEIGHT13 1183 #define ID_INS_HOOK 32772 #define ID_UNINS_HOOK 32773 @@ -399,7 +439,7 @@ #ifndef APSTUDIO_READONLY_SYMBOLS #define _APS_NEXT_RESOURCE_VALUE 381 #define _APS_NEXT_COMMAND_VALUE 32775 -#define _APS_NEXT_CONTROL_VALUE 1175 +#define _APS_NEXT_CONTROL_VALUE 1181 #define _APS_NEXT_SYMED_VALUE 346 #endif #endif diff --git a/ReviewSystem/include/M_AutoDiagnosisManager/DiagnosisInfo.h b/ReviewSystem/include/M_AutoDiagnosisManager/DiagnosisInfo.h index 7392af9..8de970b 100644 --- a/ReviewSystem/include/M_AutoDiagnosisManager/DiagnosisInfo.h +++ b/ReviewSystem/include/M_AutoDiagnosisManager/DiagnosisInfo.h @@ -22,8 +22,9 @@ enum DiagnosisMode { DiagnosisMode_All = 0, - DiagnosisMode_Squareness, + DiagnosisMode_Review, DiagnosisMode_Wsi, + DiagnosisMode_Squareness, DiagnosisMode_Flatness, DiagnosisMode_Flatness_Manual, DiagnosisMode_Simulation @@ -63,6 +64,8 @@ virtual BOOL IDP2P_SetDlgFlatness(int nIndex) = 0; virtual BOOL IDP2P_SetDialogTap(int nIndex) = 0; virtual void IDP2P_UpdateDialog(int nIndex = -1) = 0; + + virtual BOOL IDP2P_CheckManualMode() = 0; }; struct SPositionData @@ -129,6 +132,7 @@ void SetHeight3Sigma(double dData) { m_dHeight3Sigma = dData; } void SetACC(double dData) { m_dACC = dData; } void SetRTB(double dData) { m_dRTB = dData; } + void SetDiagnosisHeight(double dData, int idx) { m_dDiagnosisHeight[idx] = dData; } // getter int GetModuleIndex() const { return m_nModuleIndex; } @@ -148,6 +152,8 @@ double GetHeight3Sigma() const { return m_dHeight3Sigma; } double getWSI_ACC() const {return m_dACC;} double getWSI_RTB() const { return m_dRTB; } + double GetDiagnosisHeight(int idx) const { return m_dDiagnosisHeight[idx]; } + protected: int m_nModuleIndex; @@ -167,6 +173,7 @@ double m_dHeight3Sigma; double m_dACC; double m_dRTB; + double m_dDiagnosisHeight[10]; }; typedef std::vector<CDiagnosisResult> VectorDiagnosisResult; typedef std::vector<CDiagnosisResult>::iterator VectorDiagnosisResultIt; @@ -188,6 +195,7 @@ m_dCameraResolution = 0.; m_nPanelCount_Squareness = 0; m_dJudgeData_Degree = 0.; + m_dSquarenessStandard = 0.; m_dataSettingResult_Flatness.Reset(); m_nAFDelay = 0; @@ -199,6 +207,7 @@ m_vecSettingResult_Wsi.clear(); m_nPanelCount_Wsi = 0; m_dJudgeData_3Sigma = 0.; + m_dWSIStandard = 0.; m_dPanelPosX = 0; m_dPanelPosY = 0; @@ -215,6 +224,9 @@ m_dReviewPanelPosY2 = 0; m_dReviewPanelPosX4 = 0; m_dReviewPanelPosY4 = 0; + //#3514_LYW_CF AOI Review 자가진단 기능 개선_START + m_nFlatnessSkipMode = 0; + //#3514_LYW_CF AOI Review 자가진단 기능 개선_END } @@ -237,10 +249,16 @@ void SetPanelCount_Wsi(int nCount) { m_nPanelCount_Wsi = nCount; } void SetJudgeData_3Sigma(double dData) { m_dJudgeData_3Sigma = dData; } - void GetPanelPosX_Wsi(double dData) { m_dPanelPosX = dData; } - void GetPanelPosY_Wsi(double dData) { m_dPanelPosY = dData; } - void GetPanelPosX2_Wsi(double dData) { m_dPanelPosX2 = dData; } - void GetPanelPosY2_Wsi(double dData) { m_dPanelPosY2 = dData; } + void SetPanelPosX_Wsi(double dData) { m_dPanelPosX = dData; } + void SetPanelPosY_Wsi(double dData) { m_dPanelPosY = dData; } + void SetPanelPosX2_Wsi(double dData) { m_dPanelPosX2 = dData; } + void SetPanelPosY2_Wsi(double dData) { m_dPanelPosY2 = dData; } + //#3514_LYW_CF AOI Review 자가진단 기능 개선_START + void SetFlastnessSkipMode(double dData) { m_nFlatnessSkipMode = dData; } + void SetSquarenessStandard(double dData) { m_dSquarenessStandard = dData; } + void SetSquarenessStandard2(double dData) { m_dSquarenessStandard2 = dData; } + void SetWSIStandard(double dData) { m_dWSIStandard = dData; } + //#3514_LYW_CF AOI Review 자가진단 기능 개선_END // getter @@ -272,6 +290,12 @@ double GetPanelPosY_Wsi() const { return m_dPanelPosY; } double GetPanelPosX2_Wsi() const { return m_dPanelPosX2; } double GetPanelPosY2_Wsi() const { return m_dPanelPosY2; } + //#3514_LYW_CF AOI Review 자가진단 기능 개선_START + int GetFlastnessSkipMode() const { return m_nFlatnessSkipMode; } + double GetSquarenessStandard() const { return m_dSquarenessStandard; } + double GetSquarenessStandard2() const { return m_dSquarenessStandard2; } + double GetWSIStandard() const { return m_dWSIStandard; } + //#3514_LYW_CF AOI Review 자가진단 기능 개선_END //Review public: double GetReviewPanelPosX() const { return m_dReviewPanelPosX; } @@ -300,6 +324,10 @@ int m_nCameraFrameHeight; double m_dCameraResolution; double m_dJudgeData_Degree; + //#3514_LYW_CF AOI Review 자가진단 기능 개선_START + double m_dSquarenessStandard; + double m_dSquarenessStandard2; + //#3514_LYW_CF AOI Review 자가진단 기능 개선_END // Flatness CDiagnosisResult m_dataSettingResult_Flatness; // single data @@ -309,11 +337,17 @@ int m_nRangeCount_Flatness; int m_nGlassSizeX; int m_nGlassSizeY; + //#3514_LYW_CF AOI Review 자가진단 기능 개선_START + int m_nFlatnessSkipMode; + //#3514_LYW_CF AOI Review 자가진단 기능 개선_END // wsi VectorDiagnosisResult m_vecSettingResult_Wsi; // add module count int m_nPanelCount_Wsi; double m_dJudgeData_3Sigma; + //#3514_LYW_CF AOI Review 자가진단 기능 개선_START + double m_dWSIStandard; + //#3514_LYW_CF AOI Review 자가진단 기능 개선_END double m_dPanelPosX; double m_dPanelPosY; diff --git a/ReviewSystem/include/M_AutoDiagnosisManager/DiagnosisManager.h b/ReviewSystem/include/M_AutoDiagnosisManager/DiagnosisManager.h index 8a2e785..95bc66b 100644 --- a/ReviewSystem/include/M_AutoDiagnosisManager/DiagnosisManager.h +++ b/ReviewSystem/include/M_AutoDiagnosisManager/DiagnosisManager.h @@ -40,6 +40,8 @@ BOOL MakeDirectory(CString strPath); + BOOL CheckManualMode(); + // setter void SetExistStandardData(BOOL bExist = TRUE) { m_bExistStandardData = bExist; } int SetDiagnosisResultCount_Squareness(int nCount); diff --git a/ReviewSystem/include/M_AutoDiagnosisManager/DiagnosisProcessor.h b/ReviewSystem/include/M_AutoDiagnosisManager/DiagnosisProcessor.h index 23ee814..d2dac1a 100644 --- a/ReviewSystem/include/M_AutoDiagnosisManager/DiagnosisProcessor.h +++ b/ReviewSystem/include/M_AutoDiagnosisManager/DiagnosisProcessor.h @@ -49,6 +49,7 @@ int ProcessFlatness(); int ProcessFlatness_Manual(); int ProcessSimulation(); + int ProcessDiagnosisJudge(); BOOL CalculateSquareness(int nIndex); protected: -- Gitblit v1.9.3