SDC C-Project CF Review 프로그램
LYW
2021-09-23 c08b701c90c8998b241c82638d5c488e03238214
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
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
#pragma once
 
namespace CHReviewResult
{
    enum ResultFileType            { RESULT_FILE_TD = 0, RESULT_FILE_CD, RESULT_FILE_SD, RESULT_FILE_TYPE_COUNT };
    enum DefectType                { DEFECT_TYPE_NONE = 0, DEFECT_TYPE_D, DEFECT_TYPE_B, DEFECT_TYPE_BD, DEFECT_TYPE_PD, DEFECT_TYPE_PB, DEFECT_TYPE_PBD, DEFECT_TYPE_MNT, DEFECT_TYPE_EC, DEFECT_TYPE_MURA, DEFECT_TYPE_VLINE, DEFECT_TYPE_HLINE, DEFECT_TYPE_SPOT, DEFECT_TYPE_DENT, DEFECT_TYPE_PROTRUDE };// 20171003 smok. MURA ���� ���
    // [2018/01/29 15:16:23 by jylee] related PANDA
    enum PANDADefectType        { DEFECT_TYPE_NORMAL = 0, DEFECT_TYPE_COMMON, DEFECT_TYPE_MASK };
    enum DefectGrayType            { DEFECT_GRAY_NONE = 0, DEFECT_GRAY_BLACK, DEFECT_GRAY_WHITE };
    enum DefectOpticType        { DEFECT_OPTIC_NONE = 0, DEFECT_OPTIC_DARK, DEFECT_OPTIC_BRIGHT, DEFECT_OPTIC_DKBR };
    enum DefectOpticType_A3P_EA    { DEFECT_OPTIC_A3P_EA_NONE = 0, DEFECT_OPTIC_A3P_EA_TRANSMIT, DEFECT_OPTIC_A3P_EA_REFLECT };
    enum DefectStackType {
        DEFECT_STACK_NONE = 0, DEFECT_STACK_TD, DEFECT_STACK_SD, DEFECT_STACK_PD, DEFECT_STACK_SP, DEFECT_STACK_CD
    };
    //enum DefectStackType        { DEFECT_STACK_NONE = 0, DEFECT_STACK_CD, DEFECT_STACK_TD, DEFECT_STACK_SD };
 
    enum DefectSizeType            { DEFECT_SIZE_NONE = 0, DEFECT_SIZE_SMALL, DEFECT_SIZE_MEDIUM, DEFECT_SIZE_LARGE, DEFECT_SIZE_HUGE };
    enum DefectJudgeType        { DEFECT_JUDGE_NONE = 0, DEFECT_JUDGE_OK, DEFECT_JUDGE_TR, DEFECT_JUDGE_PR};
    enum DefectJudgeType_CPJT {
        DEFECT_JUDGE_CPJT_OK = 0, DEFECT_JUDGE_CPJT_RP, DEFECT_JUDGE_CPJT_NG, DEFECT_JUDGE_CPJT_TR, DEFECT_JUDGE_CPJT_PR, DEFECT_JUDGE_CPJT_PT, DEFECT_JUDGE_CPJT_Review, DEFECT_JUDGE_CPJT_RC, DEFECT_JUDGE_CPJT_Size, DEFECT_JUDGE_CPJT_VI, DEFECT_JUDGE_CPJT_Rework, DEFECT_JUDGE_CPJT_Unknown, DEFECT_JUDGE_CPJT_GRADE_COUNT
    };
    enum DefectSubType            { DEFECT_SUBTYPE_NONE = 0, DEFECT_SUBTYPE_NR, DEFECT_SUBTYPE_MD, DEFECT_SUBTYPE_CD, DEFECT_SUBTYPE_MC };
    enum DefectProcessType        { DEFECT_PROCESS_NONE = 0, DEFECT_PROCESS_NORMAL, DEFECT_PROCESS_MASK, DEFECT_PROCESS_COMMON, DEFECT_PROCESS_CRACK };
    enum DefectPositionType        { DEFECT_POSITION_NONE = -1, DEFECT_POSITION_FRONT, DEFECT_POSITION_BACK };
    enum DefectZoneType            { DEFECT_ZONE_NONE = 0, DEFECT_ZONE_DA, DEFECT_ZONE_GA, DEFECT_ZONE_GH, DEFECT_ZONE_AA };
 
    enum SERVER_DefectType        { DefectType_TBlack = 0, DefectType_TWhite, DefectType_RBlack, DefectType_RWhite, DefectType_Unknown }; //�˻��
    enum SERVER_DefectLocation    { DefectLoc_Pattern = 0, DefectLoc_Crack, DefectLoc_BM, DefectLoc_ASG, DefectLoc_PAD, DefectLoc_C2C, DefectLoc_Align }; //�˻��
    enum SERVER_DefectSubType    { DefectSubType_Normal = 0, DefectSubType_Edge, DefectSubType_MC, DefectSubType_Mask, DefectSubType_Common, DefectSubType_NoDefect, DefectSubType_Align }; //�˻��
 
    enum SERVER_DefectPosition    { DefectPos_Front = 0, DefectPos_Back };
 
    enum LayerDefectSizeCondition { LAYER_GT_SIZE = 120, LAYER_IGZO_SIZE = 120, LAYER_ESGI_SIZE = 120, LAYER_SD_SIZE = 120, LAYER_JAS_SIZE = 80, LAYER_PIX_SIZE = 120 };
 
    // [2018/03/14 09:39:35 by jylee] related Deep Learning
    enum DefectCodeGTType        { DEFECT_CODE_GT_NONE = 0,
                                  DEFECT_CODE_GT_PGAOS,        // Photo Gate Active-Area resist-Open Small
                                  DEFECT_CODE_GT_PGAON,        // Photo Gate Active-Area resist-Open Normal
                                  DEFECT_CODE_GT_PGAOL,        // Photo Gate Active-Area resist-Open Large
                                  DEFECT_CODE_GT_PGAOH,        // Photo Gate Active-Area resist-Open Huge
                                  DEFECT_CODE_GT_PGASN,        // Photo Gate Active-Area resist-Short Normal
                                  DEFECT_CODE_GT_PGASL,        // Photo Gate Active-Area resist-Short Large
                                  DEFECT_CODE_GT_PGASH,        // Photo Gate Active-Area resist-Short Huge
                                  DEFECT_CODE_GT_PGARN,        // Photo Gate Active-Area resist-Residue Normal
                                  DEFECT_CODE_GT_PGADN,        // Photo Gate Active-Area Dust Normal
                                  DEFECT_CODE_GT_PGADL,        // Photo Gate Active-Area Dust Large
                                  DEFECT_CODE_GT_PGADH,        // Photo Gate Active-Area Dust Huge
                                  DEFECT_CODE_GT_PGTON,        // Photo Gate Terminal Open Normal
                                  DEFECT_CODE_GT_PGTDN,        // Photo Gate Terminal Dust Normal
                                  DEFECT_CODE_GT_PGTSN,        // Photo Gate Terminal Short Normal
                                  DEFECT_CODE_GT_COUNT };
 
    enum DefectCodeIGZOType        { DEFECT_CODE_IGZO_NONE = 0,
                                  DEFECT_CODE_IGZO_PIALN,    // Photo IGZO Active-Area resist-Lack Normal
                                  DEFECT_CODE_IGZO_PIALL,    // Photo IGZO Active-Area resist-Lack Large
                                  DEFECT_CODE_IGZO_PIALH,    // Photo IGZO Active-Area resist-Lack Huge
                                  DEFECT_CODE_IGZO_PIARN,    // Photo IGZO Active-Area resist-Residue Normal
                                  DEFECT_CODE_IGZO_PIARL,    // Photo IGZO Active-Area resist-Residue Large
                                  DEFECT_CODE_IGZO_PIARH,    // Photo IGZO Active-Area resist-Residue Huge
                                  DEFECT_CODE_IGZO_PIADN,    // Photo IGZO Active-Area Dust Normal
                                  DEFECT_CODE_IGZO_PIADL,    // Photo IGZO Active-Area Dust Large
                                  DEFECT_CODE_IGZO_PIADH,    // Photo IGZO Active-Area Dust Huge
                                  DEFECT_CODE_IGZO_PITLN,    // Phote IGZO Terminal resist-Lack Normal
                                  DEFECT_CODE_IGZO_PITDN,    // Photo IGZO Terminal Dust Normal
                                  DEFECT_CODE_IGZO_PITRN,    // Photo IGZO Terminal resist-Residue Normal
                                  DEFECT_CODE_IGZO_PIPLD,    // Photo IGZO Pre Layer Defect 
                                  DEFECT_CODE_IGZO_COUNT };
 
    enum DefectCodeESGIType        { DEFECT_CODE_ESGI_NONE = 0,
                                  DEFECT_CODE_ESGI_PEALN,    // Photo ESGI Active-Area resist-Lack Normal
                                  DEFECT_CODE_ESGI_PEALL,    // Photo ESGI Active-Area resist-Lack Large
                                  DEFECT_CODE_ESGI_PEALH,    // Photo ESGI Active-Area resist-Lack Huge
                                  DEFECT_CODE_ESGI_PEARN,    // Photo ESGI Active-Area resist-Residue Normal                                             
                                  DEFECT_CODE_ESGI_PEADN,    // Photo ESGI Active-Area Dust Normal
                                  DEFECT_CODE_ESGI_PEADL,    // Photo ESGI Active-Area Dust Large
                                  DEFECT_CODE_ESGI_PEADH,    // Photo ESGI Active-Area Dust Huge
                                  DEFECT_CODE_ESGI_PETLN,    // Phote ESGI Terminal resist-Lack Normal
                                  DEFECT_CODE_ESGI_PETDN,    // Photo ESGI Terminal Dust Normal
                                  DEFECT_CODE_ESGI_PETRN,    // Photo ESGI Terminal resist-Residue Normal
                                  DEFECT_CODE_ESGI_PEPLD,    // Photo ESGI Pre Layer Defect 
                                  DEFECT_CODE_ESGI_COUNT };
 
    enum DefectCodeSDType        { DEFECT_CODE_SD_NONE = 0,                                           
                                  DEFECT_CODE_SD_PSAON,        // Photo Source Active-Area resist-Open Normal
                                  DEFECT_CODE_SD_PSAOL,        // Photo Source Active-Area resist-Open Large
                                  DEFECT_CODE_SD_PSAOH,        // Photo Source Active-Area resist-Open Huge
                                  DEFECT_CODE_SD_PSAOD,        // Photo Source Active-Area resist-Open Drain
                                  DEFECT_CODE_SD_PSASN,        // Photo Source Active-Area resist-Short Normal
                                  DEFECT_CODE_SD_PSASL,        // Photo Source Active-Area resist-Short Large
                                  DEFECT_CODE_SD_PSASH,        // Photo Source Active-Area resist-Short Huge
                                  DEFECT_CODE_SD_PSASD,        // Photo Source Active-Area resist-Short Drain
                                  DEFECT_CODE_SD_PSARN,        // Photo Source Active-Area resist-Residue Normal
                                  DEFECT_CODE_SD_PSADN,        // Photo Source Active-Area Dust Normal
                                  DEFECT_CODE_SD_PSADL,        // Photo Source Active-Area Dust Large
                                  DEFECT_CODE_SD_PSADH,        // Photo Source Active-Area Dust Huge
                                  DEFECT_CODE_SD_PSTON,        // Photo Source Terminal resist-Open Normal
                                  DEFECT_CODE_SD_PSTDN,        // Photo Source Terminal Dust Normal
                                  DEFECT_CODE_SD_PSTSN,        // Photo Source Terminal resist-Short Normal
                                  DEFECT_CODE_SD_PSPLD,        // Photo Source Pre Layer Defect
                                  DEFECT_CODE_SD_COUNT };
 
    enum DefectCodeJASType        { DEFECT_CODE_JAS_NONE = 0,
                                  DEFECT_CODE_JAS_PJALN,    // Photo Jas Active-Area jas-Lack Normal
                                  DEFECT_CODE_JAS_PJALL,    // Photo Jas Active-Area jas-Lack Large
                                  DEFECT_CODE_JAS_PJALH,    // Photo Jas Active-Area jas-Lack Huge
                                  DEFECT_CODE_JAS_PJARN,    // Photo Jas Active-Area jas-Residue Normal
                                  DEFECT_CODE_JAS_PJADN,    // Photo Jas Active-Area Dust Normal
                                  DEFECT_CODE_JAS_PJADL,    // Photo Jas Active-Area Dust Large
                                  DEFECT_CODE_JAS_PJADH,    // Photo Jas Active-Area Dust Huge
                                  DEFECT_CODE_JAS_PJTLN,    // Phote Jas Terminal jas-Lack
                                  DEFECT_CODE_JAS_PJTDN,    // Photo Jas Terminal Dust Normal
                                  DEFECT_CODE_JAS_PJTRN,    // Photo Jas Terminal jas-Residue
                                  DEFECT_CODE_JAS_PJPLD,    // Photo Jas Pre Layer Defect
                                  DEFECT_CODE_JAS_COUNT };
 
    enum DefectCodePIXType        { DEFECT_CODE_PIX_NONE = 0,
                                  DEFECT_CODE_PIX_PPALN,        // Photo PIX Active-Area resist-Lack Normal
                                  DEFECT_CODE_PIX_PPALL,        // Photo PIX Active-Area resist-Lack Large
                                  DEFECT_CODE_PIX_PPALH,        // Photo PIX Active-Area resist-Lack Huge
                                  DEFECT_CODE_PIX_PPARN,        // Photo PIX Active-Area resist-Residue Normal
                                  DEFECT_CODE_PIX_PPARL,        // Photo PIX Active-Area resist-Residue Large
                                  DEFECT_CODE_PIX_PPARH,        // Photo PIX Active-Area resist-Residue Huge
                                  DEFECT_CODE_PIX_PPADN,        // Photo PIX Active-Area Dust Normal
                                  DEFECT_CODE_PIX_PPADL,        // Photo PIX Active-Area Dust Large
                                  DEFECT_CODE_PIX_PPADH,        // Photo PIX Active-Area Dust Huge
                                  DEFECT_CODE_PIX_PPAIL,        // Phote PIX Active-Area ITO-Lack
                                  DEFECT_CODE_PIX_PPTLN,        // Phote PIX Terminal resist-Lack Normal
                                  DEFECT_CODE_PIX_PPTDN,        // Photo PIX Terminal Dust Normal
                                  DEFECT_CODE_PIX_PPTRN,        // Photo PIX Terminal resist-Residue Normal
                                  DEFECT_CODE_PIX_PPPLD,        // Photo PIX Pre Layer Defect 
                                  DEFECT_CODE_PIX_COUNT };
    
}
 
class AFX_EXT_CLASS CCellResult
{
public:
    CCellResult();
    virtual ~CCellResult();
    void Reset();
 
public:
    int            nCellIdx;
    int            nUMOriginX;
    int            nUMOriginY;
    int            nUMOriginWidth;
    int            nUMOriginHeight;
    int            nDefectCount;
    CString        strCellID;
    CString        strCellJudge;
};
 
class AFX_EXT_CLASS CDefectResult
{
public:
    CDefectResult();
    virtual ~CDefectResult();
    void Reset();
 
public:
    //02.14 CHM RTMS�뵵
    CString        strLotID;
    CString     strGlassID;
    CString     strOperID; //
 
    CString     ProcessID; // operID ���� 
    int            nPanelID;       // test
    int         nDefectidx1; //�˻� ���� �ε��� 
    int         nDefectidx2; //Raw �޽��� �ε���
    int         nUpdateTime;
    
    
    //====================================
    BOOL        bReviewAdded;
    BOOL        bWsiAdded;
 
    BOOL        bMeasurePoint;
    BOOL        bInRange;
    BOOL        bRework;
    BOOL        bReworkSelected;
 
    // [2017:5:12]-[WEZASW] : DFS Result File Format ����
    // defect raw data
    int            nTotalDefectCount;                // Mura Defect Filter�� Total Defect(Vector) Index
 
    int            nDefectIdx;                        // Defect No. 
    CString        strDefectCode;                    // Defect Code
    int            nDefectCode;                    // Defect Code Number
    int            nDefectJudgeCode;                // TRDF ���� �˻� Defect Code CPJT �� ��...�򰥸��� DefectJudge�� �ٸ� Defect Code ���ٸ� tlqkf 
    CString        strDefectJudgeCode;                // TRDF ���� �˻� Defect Code CPJT �� //20210608
    CString        strDefectName;                    // Defect Name
    CString        strCPResult;
 
    CString        strDefectType;                    // PARTICLE/CRACK/DENT / PROTRUSION/TFE_ABNORMAL
    int            nDefectType;                    
 
    int            nUMOriginX;                        // LTPS�۶� ���� ���� ��ǥ X
    int            nUMOriginY;                        // LTPS�۶� ���� ���� ��ǥ Y
 
    double        nUMTransX;                        // Stage ���� �۶� Left Bottom ���ø� ���� �����ǥ X
    double        nUMTransY;                        // Stage ���� �۶� Left Bottom ���ø� ���� �����ǥ Y
 
    int        nUMCellX;//�� �߽� x��ǥ
    int        nUMCellY;//�� �߽� Y��ǥ
 
    CString        strMarkType;                    // POINT/LINE/RECT/CIRCLE/TRIANGLE/ARC
    int            nMarkType;                    
 
    double        dUMCenterOriginX;                // Glass Center ���� ��ǥ X
    double        dUMCenterOriginY;                // Glass Center ���� ��ǥ X
 
    int            nSrcMax;//Gray max
    int            nRefMax;//�񱳴�� Gray max
 
    CString        strCellID;                        // Defected Panel ID
    CString        strEquipID;
 
    CString        strSizeType;                    // S/M/L/EX_L/UL_L
    int            nSizeType;
 
    double        nAOISizeW;                        // Defect��s X axis size (um)
    double        nAOISizeH;                        // Defect��s Y axis size (um)
    double        nAOISizeLength;                    // Defect��s Diagonal Length (um)  
    double        nAOIArea;                        // 
    CString        strAOIArea;
 
    int            nAOIPeak;                        // 
 
    int            nDefectWBType;                    // ����� ����� �з� (1,3,5�� �����)
 
    CString        strDefectType1;                    
    int            nDefectType1;    
 
    CString        strDefectType2;                    // Back(B) / TOP(T)????  => Lami AOI ��/�� Camera�� ���� �з� ����
    int            nDefectType2;    
 
    CString        strUploadImgFileName;            // Review Image File Name
    CString        strUploadImgFileName2;            // image name 2
 
    int            nDefectGroup;                    // [2018/06/04 11:13:54 by jylee] related Group Defect �з�
 
    int            nMultiModel;
 
    int            nReview_Processing;
 
    // [2017:4:10]-[WEZASW] : ����� ��û�� ���� bmp ���� �߰� ����. (�ӽû��)
    CString        strOrignalImgFileName;
 
    // [2017/08/03 14:10:50 by jylee] related Sharp
    double        nUMDefectImageSizeX;            // 9999.99 um
    double        nUMDefectImageSizeY;
 
    CString        strInspectImgFileName;
 
    double        nUMInspectImageSizeX;
    double        nUMInspectImageSizeY;
 
 
 
    //////////////////////////////////////////////////////////////////////////
 
    // cd, sd index
    int            nCDDefectIdx;
    int            nSDDefectIdx;
 
    int            nAOISizeS;                        // 
    int            nAOISize;                        // 
 
    int            nLocation;
    int            nAOIScanIdx;
    int            nAOICameraIdx;
 
    int            nDark_Thres;
    int            nBright_Thres;
    int            nSizeJudge;
 
    CString        strDefectInfo;
    int            nCellZone;
    CString        strDefectZone;
    int            nDefectZone;        // [2018/07/28 11:15:39 by jylee] related Zone Data
 
 
    int            nGrayType;
    CString        strGrayType;
 
    int            nOpticType;
    CString        strOpticType;
 
    CString        strStackType;            
    int            nStackType;                
 
    int            nStackStepCount; 
    CString        strStackStep;        
 
 
    CString        strProcessType;            
    int            nProcessType;
 
    CString        strDefectPos;
    int            nDefectPos;
 
    // filtering info (for fic)
    CString        strJudgeType;
    int            nJudgeType;        
 
    CString        strSubType;
    int            nSubType;
 
    int            nSortSection;
 
    // not used FIC
    int            nZonePercent;            // (13) ZONE_Percent       //������.                   or MNT Data 0
    int            nBF_Width;                // (14) bf_width_um        //���� width  (����) BF Size  or MNT Data 1
    int            nBF_Length;                // (15) bf_length_um       //���� Length (����) BF Size  or MNT Data 2
    int            nBF_Min;                // (16) bf_min             //BF_DEFECT�� GRAY MIN        or MNT Data 3
    int            nBF_Avg;                // (17) bf_avg             //BF_DEFECT�� GRAY AVG        or MNT Data 0
    int            nBF_AvgDiff;            // (18) bf_avg_diff
 
    int            nDF_Width;                // (19) df_width_um        //���� width  (����) DF Size
    int            nDF_Length;                // (20) df_lengt_um        //���� Length (����) DF Size
 
    int            nBefore_SizeWidth;        
    int            nBefore_SizeHeight;        
    int            nAfter_NPixel;            
    ///int            nAfter_SizeWidth;        
    ///int            nAfter_SizeHeight;        
    double        nAfter_SizeWidth;        
    double        nAfter_SizeHeight;        
 
    double        dAfter_Area;        
 
    int            m_nClusterIndex;
    int            m_nClusterCount;
    BOOL        m_bClusterCore;
 
 
};