#pragma once #include #include /* 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 = "D:\\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 m_mapFind; };