SDC C-Project CF Review 프로그램
LYW
2021-07-01 4acd943c6f0beecd3ee573f77d8d6c7524fd5045
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
#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    AVG_GRAY_1; // 0 Scan 1 Model
    CString    PORTION_1;
    CString    AVG_GRAY_2; // 1 Scan 0 Model
    CString    PORTION_2;
    CString    AVG_GRAY_3; // 1 Scan 1 Model
    CString    PORTION_3;
};
 
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;
 
};