From 3ce48f6dbeb537e252edb0d62c88a28796e36674 Mon Sep 17 00:00:00 2001 From: SWK <sungwk82@diteam.co.kr> Date: 월, 26 12월 2022 15:04:42 +0900 Subject: [PATCH] ongoing60 #4403 CF AOI Review TACT 지연 개선 1. 신호 출력 방식 재개선 - 유지 시간이 없는 신호는 바로 출력 진행하도록 변경 2. 불필요 Delay 제거 및 시퀀스 변경 - 얼라인 측정 종료 처리 간 제어 신호 먼저 출력 후 카메라 Stop으로 변경 - 물류 정보 읽기 처리 후 1000ms Delay 삭제 - 얼라인 측정 시작(카메라 Live Start) 후 Delay 300ms -> 100ms(이미지 들어오는 시간 확보 필요) - ReadRawFile 처리 시작 전 500ms Delay 삭제 - Path Scheduling 완료 후 Review Ready 신호 출력 전 1000ms Delay 삭제 3. 버그 수정 - 이미지 저장 경로 생성 간 예외 처리 부분 버그 수정 4. 로그 시간 출력 불합리 개선 - 로그 시간이 파일 출력 시점으로 작성되어 로그 스래드 지연 시 시간이 맞지 않는 불합리 있음 - 로그 시간은 로그 발생 시점에 시간 저장, 해당 시간 이용하여 파일에 기록하도록 변경 --- 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