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. 로그 시간 출력 불합리 개선  - 로그 시간이 파일 출력 시점으로 작성되어 로그 스래드 지연 시 시간이 맞지 않는 불합리 있음  - 로그 시간은 로그 발생 시점에 시간 저장, 해당 시간 이용하여 파일에 기록하도록 변경

---
 ReviewHistory/ReveiwHistory/CHTrackerView.cpp |  124 +++++++++++++++++++++++++++++++++++++++++
 1 files changed, 124 insertions(+), 0 deletions(-)

diff --git a/ReviewHistory/ReveiwHistory/CHTrackerView.cpp b/ReviewHistory/ReveiwHistory/CHTrackerView.cpp
new file mode 100644
index 0000000..b8eabda
--- /dev/null
+++ b/ReviewHistory/ReveiwHistory/CHTrackerView.cpp
@@ -0,0 +1,124 @@
+// CHTrackerView.cpp : 구현 파일입니다.
+//
+
+#include "stdafx.h"
+#include "CHTrackerView.h"
+#include "CHBufferDC.h"
+
+// CCHTrackerView
+
+IMPLEMENT_DYNAMIC(CCHTrackerView, CCHImageView)
+
+CCHTrackerView::CCHTrackerView() : CCHImageView()
+{
+	m_rectTracker.m_rect = CRect(0,0,0,0);
+	m_rectTracker.m_nStyle = CRectTracker::dottedLine | CRectTracker::resizeOutside;
+	m_rectTracker.m_sizeMin = CSize(8,8);
+	m_bDrawTracker = FALSE;
+}
+
+
+CCHTrackerView::CCHTrackerView(CWnd *pParentWnd) : CCHImageView(pParentWnd)
+{
+	m_rectTracker.m_rect = CRect(0,0,0,0);
+	m_rectTracker.m_nStyle = CRectTracker::dottedLine | CRectTracker::resizeOutside;
+	m_rectTracker.m_sizeMin = CSize(8,8);
+	m_bDrawTracker = FALSE;
+}
+
+CCHTrackerView::~CCHTrackerView()
+{
+
+}
+
+
+BEGIN_MESSAGE_MAP(CCHTrackerView, CCHImageView)
+	ON_WM_SETCURSOR()
+	ON_WM_PAINT()
+	ON_WM_LBUTTONDOWN()
+END_MESSAGE_MAP()
+
+
+
+// CCHTrackerView 메시지 처리기입니다.
+
+BOOL CCHTrackerView::GetTrackerRect(CRect& rtRect)
+{
+	if (m_rectTracker.m_rect.Width()<0 || m_rectTracker.m_rect.Height()<0)
+	{
+		return FALSE;
+	}
+
+	rtRect = m_rectTracker.m_rect;
+
+	return TRUE;
+}
+
+void CCHTrackerView::SetTrackerRect(const CRect& rtRect)
+{
+	m_rectTracker.m_rect = rtRect;
+	Invalidate(TRUE);
+}
+
+void CCHTrackerView::ClearTrackerRect()
+{
+	m_rectTracker.m_rect = CRect(0,0,0,0);
+	Invalidate(TRUE);
+}
+
+BOOL CCHTrackerView::OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message)
+{
+	// TODO: 여기에 메시지 처리기 코드를 추가 및/또는 기본값을 호출합니다.
+	if (m_rectTracker.SetCursor(this, nHitTest))
+		return TRUE;
+
+	return CCHImageView::OnSetCursor(pWnd, nHitTest, message);
+}
+
+void CCHTrackerView::OnPaint()
+{
+
+	CCHBufferDC *pDC = new CCHBufferDC(this); // device context for painting
+
+	UpdateImageView(pDC);
+
+	m_rectTracker.m_rect.NormalizeRect();
+
+	if (m_rectTracker.m_rect.left>0 && m_rectTracker.m_rect.right<GetWidth())
+	{
+		if (m_rectTracker.m_rect.top>0 && m_rectTracker.m_rect.bottom<GetHeight())
+		{
+			m_rectTracker.Draw(pDC);
+		}
+	}
+
+	delete pDC;
+	
+}
+
+void CCHTrackerView::OnLButtonDown(UINT nFlags, CPoint point)
+{
+	// TODO: 여기에 메시지 처리기 코드를 추가 및/또는 기본값을 호출합니다.
+
+	if (m_pParentWnd==NULL || !GetImageExist()) return;
+
+	if (point.x > -1 && point.x < GetScaleWidth() &&
+		point.y > -1 && point.y < GetScaleHeight() )
+	{
+		if (m_rectTracker.HitTest(point) < 0)
+		{
+			// just to demonstrate CRectTracker::TrackRubberBand
+			if (m_rectTracker.TrackRubberBand(this, point, TRUE))
+			{
+				Invalidate();
+			}
+		}
+		else if (m_rectTracker.Track(this, point, TRUE))
+		{
+			Invalidate();
+		}
+	}
+
+	CCHImageView::OnLButtonDown(nFlags, point);
+}
+

--
Gitblit v1.9.3