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/DefectMap.cpp | 88 +++++++++++++++++++++++++++++++++++++++++--- 1 files changed, 82 insertions(+), 6 deletions(-) diff --git a/ReviewSystem/ReviewSystem/DefectMap.cpp b/ReviewSystem/ReviewSystem/DefectMap.cpp index 249d9f0..db2f55e 100644 --- a/ReviewSystem/ReviewSystem/DefectMap.cpp +++ b/ReviewSystem/ReviewSystem/DefectMap.cpp @@ -77,11 +77,14 @@ m_RowColor[2] = RGB(220,20,220); m_RowColor[3] = RGB(20,220,220); m_RowColor[4] = RGB(220, 20, 80); - for (int i=0; i<5; i++) + m_RowColor[5] = RGB(255, 128, 0); + for (int i=0; i<6; i++) { m_pDefectPen[i].CreatePen(PS_SOLID, 1, m_RowColor[i]); m_pDefectBrush[i].CreateSolidBrush(m_RowColor[i]); } +// m_pOffsetPen.CreatePen(PS_SOLID, 1, RGB(100, 200, 80)); +// m_pOffsetBrush.CreateSolidBrush(RGB(100, 200, 80)); m_nPlanIndex = 0; m_bHistoryEnable = TRUE; @@ -491,6 +494,28 @@ nCamSacnIndex = nScanidx; nGlassMax = nXpos; nGlassMin = nYpos; +} + +void CDefectMap::SetOffsetparm(int nCamidx, int nScanidx, BOOL bUse) +{ + CDC *MemDC = GetDC(); + + nOffSetMode = bUse; + nCamIndex = nCamidx; + nCamSacnIndex = nScanidx; + + if (bUse == TRUE) + { + DrawDefect(MemDC); + DrawReviewDefect(MemDC); + //DrawWsiDefect(&MemDC); + } + + nOffSetMode = FALSE; + nCamIndex = -1; + nCamSacnIndex = -1; + + //Invalidate(TRUE); } void CDefectMap::OnPaint() @@ -1585,7 +1610,7 @@ return 3; } break; - + //蹂�寃� �븘�슂 case DefectType_Judge: if (defectFilter.bJudgeOK && (pDefectResult->nJudgeType == DEFECT_JUDGE_CPJT_OK)) { @@ -1600,6 +1625,11 @@ if (defectFilter.bJudgePR && (pDefectResult->nJudgeType == DEFECT_JUDGE_CPJT_PR)) { return 2; + } + + if (defectFilter.bJudgeND && (pDefectResult->nJudgeType == DEFECT_JUDGE_CPJT_ND)) + { + return 3; } break; @@ -1737,6 +1767,11 @@ { return 2; } + + if (defectFilter.bJudgeND) + { + return 3; + } break; case DefectType_Process: @@ -1818,13 +1853,36 @@ continue; } - pOldPen = pDC->SelectObject(&m_pDefectPen[nColorIdx]); - pDC->SelectStockObject(BLACK_PEN); - pOldBrush = pDC->SelectObject(&m_pDefectBrush[nColorIdx]); + if (nOffSetMode == TRUE) + { + if (pDefectResult->nAOICameraIdx == nCamIndex && pDefectResult->nAOIScanIdx == nCamSacnIndex) + { + pOldPen = pDC->SelectObject(&m_pDefectPen[5]); + //pDC->SelectStockObject(BLACK_PEN); + pOldBrush = pDC->SelectObject(&m_pDefectBrush[5]); + } + else + { + pOldPen = pDC->SelectObject(&m_pDefectPen[5]); + pDC->SelectStockObject(BLACK_PEN); + pOldBrush = pDC->SelectObject(&m_pDefectBrush[5]); + pDC->SelectStockObject(BLACK_BRUSH); + } + + } + + else + { + pOldPen = pDC->SelectObject(&m_pDefectPen[nColorIdx]); + pDC->SelectStockObject(BLACK_PEN); + pOldBrush = pDC->SelectObject(&m_pDefectBrush[nColorIdx]); + } nPosX = pDefectResult->nUMOriginX; nPosY = pDefectResult->nUMOriginY; TransformGlass2Map(nPosX, nPosY); + + pDC->Rectangle(nPosX - m_nDefectSize, nPosY - m_nDefectSize, nPosX + m_nDefectSize, nPosY + m_nDefectSize); } @@ -2226,7 +2284,25 @@ for(constVectorSReviewResultIt its=pReviewResult->m_vecSReviewResult.begin(); its!=pReviewResult->m_vecSReviewResult.end();its++) { - if(its->nResultCode > ReviewResult_Process_Fail) + if (nOffSetMode == TRUE) + { + if (its->nAOICameraIdx == nCamIndex && its->nAOIScanIdx == nCamSacnIndex) + { + pOldPen = pDC->SelectObject(&m_pDefectPen[5]); + //pDC->SelectStockObject(BLACK_PEN); + pOldBrush = pDC->SelectObject(&m_pDefectBrush[5]); + //pDC->SelectStockObject(BLACK_BRUSH); + } + else + { + pOldPen = pDC->SelectObject(&m_pDefectPen[5]); + pDC->SelectStockObject(BLACK_PEN); + pOldBrush = pDC->SelectObject(&m_pDefectBrush[5]); + pDC->SelectStockObject(BLACK_BRUSH); + } + + } + else if(its->nResultCode > ReviewResult_Process_Fail) { pOldPen = pDC->SelectObject(&reviewedPen); pOldBrush = pDC->SelectObject(&reviewedBrush); -- Gitblit v1.9.3