From 1fd49a571338b6c946bb05dcdf59ec1468df5c50 Mon Sep 17 00:00:00 2001 From: SWK <sungwk82@diteam.co.kr> Date: 목, 22 12월 2022 12:31:43 +0900 Subject: [PATCH] ongoing50 #4403 CF AOI Reveiw TACT 지연 개선 1. 일정 시간 유지 신호 처리 시 동기화로 인한 불합리 개선 - 일정 시간 유지 필요 시 스래드풀 작업큐를 이용하여 루프처리 방식으로 변경 - 유지 신호 처리 중 출력 신호 발생 시 작업큐에 등록하여 유지 신호와 결합하여 출력 처리 2. FDC 보고 항목 중 SW 버전 체크 루프 불합리 개선 - 프로그램 시작 시 연동 프로그램 버전 체크 간 실행되지 않는 프로그램이 있는 경우 무한 루프 발생 - 무한 루프로 인한 CPU 점유 상승->루프 중간 Sleep추가 및 코드 간소화 3. 로그 메시지에 시간 ms단위 추가(황만수SM 작업 내역 병합) --- ReviewSystem/ReviewSystem/DlgAlignCamera.cpp | 69 ++++++++++++++++++++++++++++++++-- 1 files changed, 65 insertions(+), 4 deletions(-) diff --git a/ReviewSystem/ReviewSystem/DlgAlignCamera.cpp b/ReviewSystem/ReviewSystem/DlgAlignCamera.cpp index e659eee..ee55f10 100644 --- a/ReviewSystem/ReviewSystem/DlgAlignCamera.cpp +++ b/ReviewSystem/ReviewSystem/DlgAlignCamera.cpp @@ -34,6 +34,8 @@ } m_vecCameraImageView.clear(); int nSize = (int)m_vecCameraImageView.size(); + d_MatchingRate = 0.; + m_bAlignResultUpdate = FALSE; m_pDAC2P = NULL; } @@ -557,6 +559,7 @@ strValue = _T("Find Fail"); m_ctrlAlignResult.SetGradientColor(RGB(255,0,0)); SetImageMode(View_Camera); + m_bAlignResultUpdate = TRUE; break; case -1: @@ -575,6 +578,7 @@ strValue = _T("Success"); m_ctrlAlignResult.SetGradientColor(RGB(0,255,0)); SetImageMode(View_Camera); + m_bAlignResultUpdate = TRUE; break; case 2: @@ -608,6 +612,7 @@ m_AlignResult.Reset(); m_sPreAlignResult.Reset(); m_sPostAlignResult.Reset(); + d_MatchingRate = pGlassResult->m_AlignRecipe.dMatchingRate; CCoordCalibrator* pCal = m_pDAC2P->DAC2P_GetCoordCalibrator(); if (pCal) @@ -783,12 +788,15 @@ if (nIDEvent==1000) { KillTimer(nIDEvent); + int TempScore0; + int TempScore1; int nViewIndex = 2; for (VectorCameraImageViewIt it=m_vecCameraImageView.begin(); it!=m_vecCameraImageView.end(); it++) { - if (m_SharedImageData.GetUpdated(nViewIndex)) + if (m_SharedImageData.GetUpdated(nViewIndex) || m_bAlignResultUpdate == TRUE) { + if (m_bAlignResultUpdate == TRUE) m_bAlignResultUpdate = FALSE; if (m_SharedImageData.LockImageData(nViewIndex)) { const SSharedImageInfo* pImageInfo = m_SharedImageData.GetImageInfo(nViewIndex); @@ -802,13 +810,66 @@ (*it)->SetRulerGab(pImageInfo->dRulerGab); // um (*it)->SetResolution(pImageInfo->dResolution); // um - switch(pImageInfo->nCameraIndex) + switch (pImageInfo->nCameraIndex) { case 0: - (*it)->SetViewName(_T("1st")); + (*it)->d_FindScore = m_AlignResult.dFindScore[0]; + (*it)->d_MatchingRate = d_MatchingRate; + TempScore0 = m_AlignResult.dFindScore[0] * 100; + if ((*it)->d_FindScore != 0) + { + if ((*it)->d_FindScore > (*it)->d_MatchingRate) + { + CString TempStr; + TempStr.Format(_T("1st OK %d%%"), TempScore0); + (*it)->SetViewName(TempStr); + } + + else if ((*it)->d_FindScore < (*it)->d_MatchingRate) + { + CString TempStr; + TempStr.Format(_T("1st NG %d%%"), TempScore0); + (*it)->SetViewName(TempStr); + } + + else + { + (*it)->SetViewName(_T("1st")); + } + } + else + { + (*it)->SetViewName(_T("1st")); + } break; case 1: - (*it)->SetViewName(_T("2nd")); + (*it)->d_FindScore = m_AlignResult.dFindScore[1]; + (*it)->d_MatchingRate = d_MatchingRate; + TempScore1 = m_AlignResult.dFindScore[1] * 100; + if ((*it)->d_FindScore != 0) + { + if ((*it)->d_FindScore > (*it)->d_MatchingRate) + { + CString TempStr; + TempStr.Format(_T("2nd OK %d%%"), TempScore1); + (*it)->SetViewName(TempStr); + } + + else if ((*it)->d_FindScore < (*it)->d_MatchingRate) + { + CString TempStr; + TempStr.Format(_T("2nd NG %d%%"), TempScore1); + (*it)->SetViewName(TempStr); + } + else + { + (*it)->SetViewName(_T("2nd")); + } + } + else + { + (*it)->SetViewName(_T("2nd")); + } break; } -- Gitblit v1.9.3