From 0c66940a8e2cf64c9890519901f433b3668216b6 Mon Sep 17 00:00:00 2001
From: KEJ <kimeungju@diteam.co.kr>
Date: 수, 26 6월 2024 15:13:18 +0900
Subject: [PATCH] Ongoing80 #4942 CF AOI Review Bin File Loading 실패 개선  1. GlassRawMessenger 동기화  2. BIN파일 FindFile 제거(RawMessenger, Review 공통)  3. Unloading 시 BIN파일 제거

---
 ReviewHistory/ReveiwHistory/ReveiwHistoryDlg.h |  395 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 395 insertions(+), 0 deletions(-)

diff --git a/ReviewHistory/ReveiwHistory/ReveiwHistoryDlg.h b/ReviewHistory/ReveiwHistory/ReveiwHistoryDlg.h
new file mode 100644
index 0000000..55a2399
--- /dev/null
+++ b/ReviewHistory/ReveiwHistory/ReveiwHistoryDlg.h
@@ -0,0 +1,395 @@
+癤�
+// ReveiwHistoryDlg.h: �뿤�뜑 �뙆�씪
+//
+
+#pragma once
+
+#include "akFormationMap.h"
+#include "akGridData.h"
+#include "AlignDlg.h"
+#include "akWndArrange.h"
+#include "DitGlassRawServer.h"
+#include "GlassRawBase.h"
+#include "akCore/akFileDB.h"
+#include "afxcmn.h"
+#include "akGridCtrl/akGridCtrl.h"
+#include "akImageView.h"
+//#include "CameraImageView.h"
+//#include "CHImageControls/CHRectTracker.h"
+
+
+#define MAX_COUNT	100
+/*< LYW 20211025 - #3684 ADD Start >*/
+enum OFFSETCOUNT {
+	CAM_MAX_COUNT = 20, XPOS_MAX_COUNT = 10, SCAN_MAX_COUNT = 10, PROGRESS_BAR_MAX = 2000
+};
+
+#define	REVIEW_OFFSET_CONFIGFILE_PATH _T("D:\\DIT_Review\\ReviewServerConfig\\") //210805
+#define	REVIEW_OFFSET_CONFIGFILE_NAME _T("ReviewOffSet.cfg")
+#define REVIEW_OFFSET_CONFIGFILE_FULL_PATHNAME _T("D:\\DIT_Review\\ReviewServerConfig\\ReviewOffSet.cfg")
+#define MOTOR_OFFSET_CONFIGFILE_FULL_PATHNAME _T("D:\\DIT_Review\\ReviewServerConfig\\MotorOffSet.cfg")
+/*< LYW 20220525 - #4158 ADD Start >*/
+#define _REVIEW_SERVER_SYSTEM_SETTING_BACKUP_PATH_CPJT	_T("\\\\126.100.100.5\\d\\DIT Back up\\DIT Review\\ReviewServerConfig")
+/*< LYW 20220525 - #4158 ADD End >*/
+#define	REVIEW_OFFSET_BACKUP_FORDER_NAME _T("OffsetBackup")
+#define	REVIEW_OFFSET_BACKUP_FORDER_PATH _T("D:\\DIT_Review\\ReviewServerConfig\\OffsetBackup\\")
+
+/*< LYW 20211111 - #3766 ADD Start >*/
+#define COPYDATA_REVIEWHISTORYOR2REVIEWSYSTEM 1800
+/*< LYW 20211111 - #3766 ADD End >*/
+/*< LYW 20211025 - #3684 ADD End >*/
+
+struct _DefectList
+{
+	int				m_nFileTime;
+	CString			m_strFileName;
+	CString			m_strLoading;
+	CString			m_strGlassID;
+	CString			m_strPPID;
+	int				m_nReviewCount;
+	int				m_nAllCount;
+	CString			m_strJudge;
+};
+
+/*< LYW 20211025 - #3684 ADD Start >*/
+struct OffSetInfo
+{
+	int nXposIndex;
+	int nScanIndex;
+	int nCamIndex;
+	double dXposMax;
+	double dXposMin;
+	double dYposMax;
+	double dYposMin;
+	double dXoffSetValue;
+	double dYoffSetValue;
+	BOOL bCheckSave;
+
+};
+typedef std::vector<OffSetInfo> VecOffSetData;
+typedef std::vector<VecOffSetData> VecOffSetScanData;
+typedef std::vector<VecOffSetScanData> VecOffSetCameraInfo;
+/*< LYW 20211025 - #3684 ADD End >*/
+
+/*< LYW 20211029 - #3684 ADD Start >*/
+DWORD RunThreadReviewHistory(LPVOID param);
+/*< LYW 20211029 - #3684 ADD End >*/
+
+// CReveiwHistoryDlg ���솕 �긽�옄
+class CReveiwHistoryDlg : public CDialogEx
+{
+// �깮�꽦�엯�땲�떎.
+public:
+	CReveiwHistoryDlg(CWnd* pParent = nullptr);	// �몴以� �깮�꽦�옄�엯�땲�떎.
+	/*< LYW 20211029 - #3684 ADD Start >*/
+	~CReveiwHistoryDlg(void);
+	/*< LYW 20211029 - #3684 ADD End >*/
+
+// ���솕 �긽�옄 �뜲�씠�꽣�엯�땲�떎.
+#ifdef AFX_DESIGN_TIME
+	enum { IDD = IDD_DLG_REVIEWHISTORY };
+#endif
+
+	protected:
+	virtual void DoDataExchange(CDataExchange* pDX);	// DDX/DDV 吏��썝�엯�땲�떎.
+
+public:
+	CFont m_Filelistfont;
+	CFont m_Defectfont;
+
+	_DefectDisplayOption m_DefectDisplayOption;
+	CakFormationMap m_FormationMap;
+	akDefectFormation m_Formation;
+	CString m_strRawFilePath;
+	CakWndArrange		m_WndArrange;
+
+	CakImageView m_ImageView;
+
+	CAlignDlg* m_pDlgAlign;
+
+	CakGridCtrl m_gridMultiLIst;
+	std::vector<CString> m_vecStrGridMultiHeader;
+
+	CakGridCtrl m_gridReviewList;
+	std::vector<CString> m_vecStrGridReviewHeader;
+	std::vector<CString> m_vecStrGridReviewList;
+	std::vector<CString> m_vecStrGridReviewPath;
+	std::vector<CString> m_vecStrGridTimeList;
+	std::vector<_DefectList> m_vecStrDefectList;
+
+	CakGridCtrl m_gridDefectInfo;
+	std::vector<CString> m_vecStrGridDefectHeader;
+
+	CakGridCtrl m_gridGlassInfo;
+	std::vector<CString> m_vecStrGridGlassHeader;
+
+	std::vector<CString> m_vecStrReviewTemp;
+	std::vector<_akFormation*>	m_vecSortForm;
+
+	std::vector<_akDefect> m_vectest;
+
+	CImage m_DefectImage;
+	//LYW 20210825 #3486 ADD START
+	CImage m_DefectRotateImage;
+	//LYW 20210825 #3486 ADD END
+	CImage m_ReviewImage;
+
+	CRect m_picture_rect;
+	CRect m_picture_rect2;
+
+	CImage m_AlignFirst;
+	CImage m_AlignSecend;
+
+	CRect m_Align_rect;
+	CRect m_Align_rect2;
+
+	CButton m_chkAllDefect;
+	CButton m_chkReviewDefect;
+	CButton m_chkMuti;
+	CButton m_chkSingle;
+
+	CSliderCtrl m_sldImg;
+	CEdit m_ctrCount;
+
+	CStatic m_ctrReviewImage;
+
+	CEdit m_ctlFileCount;
+
+	CProgressCtrl m_ctlProgress;
+
+	CakGridCtrl m_ctrlGridGlassList;
+
+	/*< LYW 20211018 - #3684 ADD Start >*/
+	//CurrentDefect, Offset 怨꾩궛 �궗�슜
+	int m_dCurDefectIdx;
+	int m_dCurDefectID;
+	/*< LYW 20211018 - #3684 ADD End >*/
+
+	/*< LYW 20211028 - #3684 ADD Start >*/
+	CTime m_LastSaveOffsetTime;
+	CTime m_CurrentResultFileTime;
+	/*< LYW 20211028 - #3684 ADD End >*/
+	/*< LYW 20211029 - #3684 ADD Start >*/
+	DWORD m_ThreadId;
+	/*< LYW 20211029 - #3684 ADD End >*/
+
+	// tracker
+	BOOL			m_bDrawTracker;
+	CPoint			m_ptTrackerStart;
+	//CCHRectTracker	m_rectTracker;
+
+	// Scroll Pos
+	int			m_nVScroll;
+	int			m_nHScroll;
+	// Max Scroll Pos
+	int			m_nMaxVScroll;
+	int			m_nMaxHScroll;
+
+///////////////////////////////////////////////////////
+	CDitGlassRawServer m_Server;
+	CGlassRawBase* m_pGlassRawMaker;
+	CgrmGlassRawData m_GlassRawDataBuffer;
+///////////////////////////////////////////////////////
+
+	int m_nSelectedCol;
+	int m_nSelectedRow;
+
+	char m_strConfigFile[MAX_PATH];
+
+	bool m_bDefectAll;
+	bool m_bFirst;
+	int m_nCount;
+
+	int m_nGlassSelect;
+	int m_nFileCount;
+	int m_nSelectFile[105];
+	int m_nDefectSize[105];
+	int m_nCellSize[105];
+	int m_nCellSizeTemp[105];
+	int m_nImageSize[105];
+	int m_nSizeDefect;
+	int m_nSizeImage;
+	int m_nDefectCount;
+	int m_nImageCount;
+	int m_nCellCount;
+
+	BOOL m_bAsending;
+
+	struct _InitOption
+	{
+		int m_nMaxDataNumCell;
+		int m_nMaxDataNumDefect;
+
+		int m_nSelectRawType;
+
+		char m_strLogFilePath[256];
+
+		int  m_bUseStack;
+		char m_strStackLocalPath[256];
+		char m_strStackEquipID[32];
+		char m_strStackParam1[32];
+		char m_strStackParam2[32];
+	}m_ConfigOption;
+	
+// 援ы쁽�엯�땲�떎.
+protected:
+	HICON m_hIcon;
+
+	// �깮�꽦�맂 硫붿떆吏� 留� �븿�닔
+	virtual BOOL OnInitDialog();
+	afx_msg void OnSysCommand(UINT nID, LPARAM lParam);
+	afx_msg void OnPaint();
+	afx_msg HCURSOR OnQueryDragIcon();
+	virtual BOOL PreTranslateMessage(MSG* pMsg);
+
+	DECLARE_MESSAGE_MAP()
+
+	void AddVecFileHeader();
+	void AddVecGlassHeader();
+	void AddVecDefectHeader();
+
+	void SlideInit();
+
+	void InitGridReviewLIst(CakGridCtrl* pGrid, UINT nRectCtrlID);
+	void InitGridGlassLIst(CakGridCtrl * pGrid, UINT nRectCtrlID);
+	void InitGridDefectLIst(CakGridCtrl* pGrid, UINT nRectCtrlID);
+	
+	void CreateUserDirectory();
+	void CreateUserClass();
+	void DestroyUserClass();
+
+	void getDispInfoGlass(int nCol, int nRow, CString* pStrData);
+	void getDispInfoGlassInfo(int nCol, int nRow, CString * pStrData);
+	void getDispInfoDefect(int nCol, int nRow, CString* pStrData);
+
+public:
+	afx_msg void OnBnClickedButtonMapviewFit();
+	afx_msg void OnDestroy();
+	afx_msg LRESULT OnMapDefectSelected(WPARAM wParam, LPARAM lParam);
+	afx_msg LRESULT OnDisplayWarning(WPARAM wParam, LPARAM lParam);
+	afx_msg LRESULT OnMapDefectMouseOver(WPARAM wParam, LPARAM lParam);
+	afx_msg LRESULT OnListDefectSelected(WPARAM wParam, LPARAM lParam);
+	/*< LYW 20211018 - #3684 ADD Start >*/
+	afx_msg LRESULT OnImageClick(WPARAM wParam, LPARAM lParam);
+	/*< LYW 20211018 - #3684 ADD End >*/
+	afx_msg void OnSize(UINT nType, int cx, int cy);
+
+	afx_msg void OnOptionPathsetting();
+	afx_msg void OnViewAlldefect();
+	afx_msg void OnViewReviewdefect();
+	afx_msg void OnAlignView();
+	afx_msg void OnBnClickedBtnFindBin();
+	afx_msg void OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar);
+	afx_msg void OnChangeEditCount();
+
+	afx_msg void OnClickedChkAllDefect();
+	afx_msg void OnClickedChkMuti();
+	afx_msg void OnClickedChkReviewDefect();
+	afx_msg void OnClickedChkSingle();
+	afx_msg void OnChangeEditFileCount();
+
+	afx_msg void OnBnClickedButton3();
+
+	virtual BOOL OnNotify(WPARAM wParam, LPARAM lParam, LRESULT* pResult);
+
+	void FileTime(CString strPath);
+	void OpenFileHeader(CString strPath, CString strFullPath);
+	void BinFileOpen(int nCount);
+	void OnCbnSelchangeComboRawtype();
+	/*< LYW 20211111 - #3766 ADD Start >*/
+	void DrawInsViewCenterLine(CPaintDC *pDC);
+	/*< LYW 20211111 - #3766 ADD End >*/
+
+	/*< LYW 20211025 - #3684 ADD Start >*/
+	afx_msg void OnBnClickedButtonOffsetApply();
+	afx_msg void OnBnClickedButtonOffsetSave();
+	BOOL LoadOffset(CString strFilePath);
+	BOOL SaveOffset();
+	/*< LYW 20211111 - #3766 ADD Start >*/
+	BOOL SendMsg2ReviewSystem();
+	/*< LYW 20211111 - #3766 ADD End >*/
+	BOOL ApplyOffset(int nModuleidx, int nCamIndex, int ScanIndex, double dXOffsetValue, double dYOffsetValue);
+	BOOL SetInputOffSet(int nModuleidx, int nCamIndex, int ScanIndex, int nXposIndex, double dXOffsetValue, double dYOffsetValue, double dXposMin, double dXposMax, BOOL bCheckSave = 0);
+	void InitDataInfo();
+	OffSetInfo GetOffSetInfo(int nMoudleidx, int nCamIndex, int ScanIndex, int nXposIndex);
+
+	int m_nCameraCount;
+	int m_nScanCount;
+	int m_XposCount;
+	double m_dWarnStandard;
+	double m_dHardStandard;
+	int m_nCurModelIdx;
+
+	/*< LYW 20211025 - #3684 ADD End >*/
+
+	//Xpos �쐞移섎퀎 �떎�젣 Offset Data 瑜� 媛�吏�怨� �엳�뒗 Vector
+	VecOffSetData  m_vecOffSetData;
+	//Scan Index瑜� �넻�븳 OffSet Data 瑜� 愿�由ы븯湲곗쐞�븳 Vector
+	VecOffSetScanData m_vecOffSetScanData;
+	//CamIndex瑜� �넻�븳 愿�由щ�� �쐞�븳 Vector  module 0
+	VecOffSetCameraInfo  m_vecOffSetCameraInfo;
+	//CamIndex瑜� �넻�븳 愿�由щ�� �쐞�븳 Vector  module 1
+	VecOffSetCameraInfo  m_vecOffSetCameraInfo2;
+
+	void ShowProgressBar();
+	void setDefectShow(int nDefectID, BOOL bEnsureVisible);
+	void ImageShow(int nDefectID);
+
+	void SetScrollSetting();
+	void SetScrollRest();
+
+	void Imagenoload();
+
+	//LYW 20210825 #3486 ADD START
+	void ImageRotate(CImage& SrcImage, CImage& DstImage, double degree = 180.0);
+	//LYW 20210825 #3486 ADD END
+
+	/*< LYW 20211028 - #3684 ADD Start >*/
+	void UpdateLastSaveOffsetTime(CString FileName);
+	CTime GetCurrentResultFileTime(CString FileName);
+	/*< LYW 20211028 - #3684 ADD End >*/
+
+	BOOL GetCheckFileLoad(int nCount);
+
+	void GlassInfoRest();
+	BOOL MultiSelectCheck(int nSelectCount);
+	int MultiInsert(int nSelectCount, int nDataCount);
+	void InitSelectGlass(int nSelectCount);
+
+	void AddVecDataImage(int nDataCount);
+	void AddVecDataDefct(int nDataCount);
+	void AddVecDataDefectAll(int nDataCount);
+	void AddVecDataDefct2(int nDataCount/*, int nRawCount*/);
+	void AddVecDataDefectAll2(int nDataCount/*, int nRawCount*/);
+	void AddVecGlassData(int nCount);
+	void AddVecCellData(int nCellCount);
+	void AddVecDateSorting(int nDataCount);
+	void AddVecImageSorting(int nDataCount);
+	void AddVecCellSorting(int nCellCount);
+
+	void SelectCell(int nDataCount);
+
+	void SortFileList(int nCol);
+	void SortListDefect(int nCol);
+
+	void SetDefectCount() {	m_nDefectCount = m_nDefectCount + 1; }
+	int	GetDefectCount() { return m_nDefectCount; }
+
+	void SetImageCount() { m_nImageCount = m_nImageCount + 1; }
+	int	GetImageCount() { return m_nImageCount; }
+
+	void SetCellCount() { m_nCellCount = m_nCellCount + 1; }
+	int	GetCellCount() { return m_nCellCount; }
+
+	afx_msg void OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags);
+	int m_nEditCamIdx;
+	int m_nEditScanIdx;
+	double m_dEditOffsetX;
+	double m_dEditOffsetY;
+	CString m_strGantryIdx;
+	/*< LYW 20211028 - #index ADD Start >*/
+	CString m_TextLastSaveOffsetTime;
+	/*< LYW 20211028 - #index ADD End >*/
+	CButton m_CheckInsViewCenterLine;
+	afx_msg void OnBnClickedCheckInsViewCenterLine();
+};

--
Gitblit v1.9.3