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/CameraImageView.h |  139 ++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 139 insertions(+), 0 deletions(-)

diff --git a/ReviewHistory/ReveiwHistory/CameraImageView.h b/ReviewHistory/ReveiwHistory/CameraImageView.h
new file mode 100644
index 0000000..8bf8388
--- /dev/null
+++ b/ReviewHistory/ReveiwHistory/CameraImageView.h
@@ -0,0 +1,139 @@
+癤�#pragma once
+
+#include "CHImageControls/CHImageData.h"
+
+#define IDR_LOAD_IMAGE		9000
+#define IDR_SAVE_IMAGE		9001
+#define IDR_ONLY_SAVE_IMAGE	9002
+
+#define IDR_CENTER_LINE		9100
+#define IDR_RULER			9101
+#define IDR_ROI_RECT		9102
+#define IDR_CLEAR_ROI_RECT	9103
+#define IDR_SAVE_ROI_RECT	9104
+	
+#define IDR_VIEW_ORIGIN		9200
+#define IDR_VIEW_FIT		9201
+
+#define IDR_VIEW_COLOR		9300
+#define IDR_VIEW_GRAY		9301
+#define IDR_VIEW_RED		9302
+#define IDR_VIEW_BLUE		9303
+#define IDR_VIEW_GREEN		9304
+
+
+// CDlgHistory ���솕 �긽�옄�엯�땲�떎.
+interface ICameraImageView2Parent
+{
+	virtual void CIV2P_GetImagePathName(CString& strFilename) = 0;
+	virtual void CIV2P_ManualSimulation(CCHImageData* pImageData) = 0;
+};
+
+class CCameraImageView : public CWnd, public CCHImageData
+{
+	DECLARE_DYNAMIC(CCameraImageView)
+
+public:
+	CCameraImageView(CWnd *pParentWnd);
+	virtual ~CCameraImageView();
+	void SetCIV2P(ICameraImageView2Parent* pCIV2P)		{ m_pCIV2P = pCIV2P; }
+
+	BOOL GetViewImage(CCHImageData* pImageData);
+	BOOL GetOriginImage(CCHImageData* pImageData);
+	BOOL SetViewImage(CCHImageData* pImageData);
+	BOOL SetOriginImage(CCHImageData* pImageData);
+	BOOL SetOriginImage(int nWidth, int nHeight, int nChannels, int nWidthStep, const BYTE* pBuffer);
+
+	// getter
+	int		GetScaleWidth(void);
+	int		GetScaleHeight(void);
+	int		GetHScrollPos(void);
+	int		GetVScrollPos(void);
+	double	GetWidthScale()		{ return m_dWidthScale; }
+	double	GetHeightScale()	{ return m_dHeightScale; }
+
+	// setter
+	void	SetDrawObject(BOOL bDraw);
+	void	SetDrawMode(int nDrawMode);
+	void	SetViewName(const CString strViewName);
+	void	SetParentWnd(CWnd* pParentWnd);
+	void	SetDrawCenterLine(BOOL bDraw);
+	void	SetDrawRuler(BOOL bDraw);
+
+	void	SetResolution(double dRes);
+	void	SetRulerGab(double dGab);
+
+	BOOL	LoadImage(const CString& strFilename);
+
+protected:
+	void	UpdateImageView(CDC *pDC);
+	void	DrawCenterLine(CDC *pDC);
+	void	DrawRuler(CDC *pDC);
+	void	DrawViewName(CDC *pDC);
+
+	ICameraImageView2Parent*	m_pCIV2P;
+
+	CRITICAL_SECTION	m_csImageData;
+	CWnd				*m_pParentWnd;
+	CString				m_strViewName;
+	CCHImageData		m_OriginImage;
+
+	// pre draw info
+	int			m_nViewBand;
+	CRect		m_rtClientRect;
+	int			m_nScaleWidth;
+	int			m_nScaleHeight;
+	double		m_dWidthScale; 
+	double		m_dHeightScale;
+
+	// Scroll Pos
+	int			m_nVScroll;
+	int			m_nHScroll;
+	// Max Scroll Pos
+	int			m_nMaxVScroll;
+	int			m_nMaxHScroll;
+
+	// image draw
+	int			m_nDrawMode;
+	BOOL		m_bDrawViewName;
+
+	BOOL		m_bDrawCenterLine;
+	BOOL		m_bDrawRuler;
+	double		m_dRulerGab;
+	double		m_dResolution;
+
+protected:
+	DECLARE_MESSAGE_MAP()
+	afx_msg void OnLoadImage();
+	afx_msg void OnSaveImage();
+	afx_msg void OnCenterLine();
+	afx_msg void OnRuler();
+	afx_msg void OnViewOrigin();
+	afx_msg void OnViewFit();
+	afx_msg void OnViewColor();
+	afx_msg void OnViewGray();
+	afx_msg void OnViewRed();
+	afx_msg void OnViewGreen();
+	afx_msg void OnViewBlue();
+	afx_msg void OnDestroy();
+	afx_msg void OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar);
+	afx_msg void OnVScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar);
+
+	afx_msg void OnPaint();
+
+	afx_msg void OnMouseMove(UINT nFlags, CPoint point);
+
+	afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
+	afx_msg void OnLButtonUp(UINT nFlags, CPoint point);
+	afx_msg void OnLButtonDblClk(UINT nFlags, CPoint point);
+
+	afx_msg void OnRButtonDown(UINT nFlags, CPoint point);
+	afx_msg void OnRButtonUp(UINT nFlags, CPoint point);
+	afx_msg void OnRButtonDblClk(UINT nFlags, CPoint point);
+	
+public:
+	
+};
+
+// typedef std::vector<CCameraImageView*>					VectorCameraImageView;
+// typedef std::vector<CCameraImageView*>::iterator		VectorCameraImageViewIt;

--
Gitblit v1.9.3