SDC C-Project CF Review 프로그램
LYW
2021-07-08 9cbd9e554f9956b3b945b51602f1d4a3fa0353e1
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;
};