From e5fa774d622d6852fe8e1f033045aed221649108 Mon Sep 17 00:00:00 2001
From: LYW <leeyeanwoo@diteam.co.kr>
Date: 금, 15 10월 2021 13:24:54 +0900
Subject: [PATCH] Ongoing80 #3662 CF AOI Review 전설비 알람 발생 조치

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

diff --git a/ReviewHistory/ReveiwHistory/MacroResultFile.h b/ReviewHistory/ReveiwHistory/MacroResultFile.h
new file mode 100644
index 0000000..f746014
--- /dev/null
+++ b/ReviewHistory/ReveiwHistory/MacroResultFile.h
@@ -0,0 +1,231 @@
+#pragma once
+
+#include <vector>
+#include <map>
+/*
+ITEM	NAME	SIZE	DESCRIPTION
+DATE	DATE	8	검사 종료 일자
+TIME	TIME	6	검사 종료 시간
+DEFECT NO	DEFECTNO	8	결함 번호
+RECIPE NAME	RECIPE	20	검사 레시피 이름
+GLASSID	GLASSID	15	기판 ID
+CELLID	CELLID	16	결함 위치 CELL ID
+COORD X	COORD_X1	8	X좌표(결함 중심 좌표, 단위 : um)
+COORD Y	COORD_Y1	8	Y좌표(결함 중심 좌표, 단위 : um)
+NOMURA	NOMURA	6	비결함 여부(1 - 비결함, 0 - 유효결함)
+WIDTH	SIZE_W	8	결함 너비(X 길이, 단위 : um)
+LENGTH	SIZE_L	8	결함 높이(Y 길이, 단위 : um)
+SQUARE	SIZE_S	15	결함 크기(면적, 단위 : um²)
+MAIN TYPE	MAIN_TYPE	15	결함 타입(Area, VLineB, HLineB, SpotB, SpotW, NonFilling, NFGroup, OrangePeel, VLineW, HLineW, VLineF, HLineF, Depo)
+SUB TYPE	SUB_TYPE	15	검출 타입(Normal, Common, Mask, CommonMask)
+PEAK	PEAK	6	결함 피크 정보(단위 : DN)
+MIN	G_MIN	6	결함 영역 최소 밝기(단위 : DN)
+MAX	G_MAX	6	결함 영역 최대 밝기(단위 : DN)
+AVERAGE	G_AVG	6	결함 영역 평균 밝기(단위 : DN)
+CAM NO	CAM	3	검출 카메라 Index
+SCAN NO	SCAN	4	검출 스캔 Index
+PIXEL PEAK	PIXEL_PEAK	10	결함 픽셀 피크 정보(단위 : DN)
+REGION TYPE	REGION	6	검출 영역(Active, Pad)
+SIZE TYPE	SIZE_T	6	크기 타입(Small, Medium, Large, Huge)
+PEAK TYPE	PEAK_T	6	피크 타입(Pale, Medium, Deep, Over)
+IMAGE FILE NAME	IMG_FILE_NAME	50	결함별 이미지 파일 이름(셀번호.결함번호_일시.jpg)
+*/
+/* CSOT T4 IJP Type
+ITEM			Start	Length
+ITEM,DEFECTDATA	0		15
+DEFECTNO		17		8
+CELLID			26		20
+COORD_X1		47		8
+COORD_Y1		56		8
+COORD_PX1		65		9
+COORD_PY1		75		9
+NOMURA			85		6
+JUDGE			92		8
+SIZE_W			101		8
+SIZE_L			110		8
+SIZE_S			119		15
+MAIN_TYPE		135		15
+SUB_TYPE		151		15
+PEAK			167		6
+G_MIN			174		6
+G_MAX			181		6
+G_AVG			188		6
+CAM				195		3
+SCAN			199		4
+PIXEL_PEAK		204		10
+REGION			215		6
+MASK_T			222		8
+SIZE_T			231		6
+PEAK_T			238		6
+IMG_FILE_NAME	245		69
+*/
+struct _MacroDefect
+{
+	CString ITEM			;			
+	int		DEFECTNO		;		
+	CString CELLID			;			
+	int 	COORD_X1		;		
+	int 	COORD_Y1		;		
+	int 	COORD_PX1		;		
+	int 	COORD_PY1		;		
+	int 	NOMURA			;			
+	CString JUDGE			;
+	int		SIZE_W			;
+	int		SIZE_L			;
+	int		SIZE_S			;
+	CString	MAIN_TYPE		;
+	CString	SUB_TYPE		;
+	int		PEAK			;
+	int		G_MIN			;
+	int		G_MAX			;
+	int		G_AVG			;
+	int		CAM				;
+	int		SCAN			;
+	int		PIXEL_PEAK		;
+	CString	REGION			;
+	CString	MASK_T			;
+	CString	SIZE_T			;
+	CString	PEAK_T			;
+	CString	IMG_FILE_NAME	;
+	
+	_MacroDefect()
+	{
+		ITEM			= "0";
+		DEFECTNO		= 0;
+		CELLID			= "0";
+		COORD_X1		= 0;
+		COORD_Y1		= 0;
+		COORD_PX1		= 0;
+		COORD_PY1		= 0;
+		NOMURA			= 0;
+		JUDGE			= "0";
+		SIZE_W			= 0;
+		SIZE_L			= 0;
+		SIZE_S			= 0;
+		MAIN_TYPE		= "0";
+		SUB_TYPE		= "0";
+		PEAK			= 0;
+		G_MIN			= 0;
+		G_MAX			= 0;
+		G_AVG			= 0;
+		CAM				= 0;
+		SCAN			= 0;
+		PIXEL_PEAK		= 0;
+		REGION			= "0";
+		MASK_T			= "0";
+		SIZE_T			= "0";
+		PEAK_T			= "0";
+		IMG_FILE_NAME	= "0";
+
+	}
+};
+
+
+///0404nwh
+struct _MacroSubPanel
+{
+	CString	PRO_IMAGE;
+	CString	AVG_GRAY_0;  // 0 Scan 0 Model
+	CString	PORTION_0;
+	CString CORNER_GRAY_0; // kyh 결과파일 포맷 수정
+	CString AVG_AMP_0;
+	CString FFT_VAR_0;
+	CString FFT_VAH_0;
+	CString FFT_VAQ_0;
+	CString FFT_PK_0; // kyh end
+	CString	AVG_GRAY_1; // 0 Scan 1 Model
+	CString	PORTION_1;
+	CString CORNER_GRAY_1; // kyh 결과파일 포맷 수정
+	CString AVG_AMP_1;
+	CString FFT_VAR_1;
+	CString FFT_VAH_1;
+	CString FFT_VAQ_1;
+	CString FFT_PK_1; // kyh end
+	CString	AVG_GRAY_2; // 1 Scan 0 Model
+	CString	PORTION_2;
+	CString CORNER_GRAY_2; // kyh 결과파일 포맷 수정
+	CString AVG_AMP_2;
+	CString FFT_VAR_2;
+	CString FFT_VAH_2;
+	CString FFT_VAQ_2;
+	CString FFT_PK_2; // kyh end
+	CString	AVG_GRAY_3; // 1 Scan 1 Model
+	CString	PORTION_3;
+	CString CORNER_GRAY_3; // kyh 결과파일 포맷 수정
+	CString AVG_AMP_3;
+	CString FFT_VAR_3;
+	CString FFT_VAH_3;
+	CString FFT_VAQ_3;
+	CString FFT_PK_3; // kyh end
+};
+
+class CMacroResultFile
+{
+public:
+	CMacroResultFile(void);
+	virtual ~CMacroResultFile(void);
+
+public:
+	BOOL openFile(char* pFileName);
+	BOOL openFile_Mura(char* pFileName);//nwh0404
+
+	BOOL IsRead() { return m_bReadSuccess; }
+	int GetDefectNum() { return (int)m_vecMacroDefect.size();}
+	int GetDefectNum(int iCell) ;
+	_MacroDefect* GetDefect(int i) { return &m_vecMacroDefect[i]; }
+
+	/////////////////////////////////////0404nwh
+	int GetSubPanelNum() { return (int)m_vecMacroSubPanel.size(); }
+	int GetSubPanelNum(int iCell);
+	_MacroSubPanel* GetSubPanel(int i) { return &m_vecMacroSubPanel[i]; }
+	/////////////////////////////////////0404nwh
+	BOOL readOptionFile(char* pFileName = "C:\\AOIServer\\ConfigFile\\MacroInfo.cfg");
+
+	_MacroDefect* FindDefect(int nX, int nY, int nFindRange = 2000/*um*/);
+public:
+	BOOL					m_bMacroResultFile;//마크로 설비 결과파일 통합 여부 태현[2017/3/29]
+	CString					m_strMacroResultRawPath;
+	CString					m_strMacroResultImagePath;
+	CString					m_strServerResultRawPath;
+	CString					m_strServerResultImagePath;
+
+	DWORD					m_dwMacroReadTime;
+
+protected:
+	char* getParsingData(char* pBuf, int nLen, CString* pOutData);
+	char* getParsingData(char* pBuf, int nLen, int* pOutData);
+
+protected:
+	BOOL m_bReadSuccess;
+	std::vector<_MacroDefect> m_vecMacroDefect;
+	std::vector<_MacroSubPanel> m_vecMacroSubPanel; //0404nwh
+
+	std::multimap<int,_MacroDefect*> m_mapFind;
+
+};
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+

--
Gitblit v1.9.3