SDC C-Project CF Review 프로그램
LYW
2021-07-27 281a73558e8d437fc778b390281560fa2e7a0e5e
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
#pragma once
 
#include "CHReviewResultParser/ParsingGlassResult.h"
#include "CHResultFileManager/ResultFileData_CPJT.h"
#include "../ReviewSystem/DitGlassRawClient.h"
 
enum GlassOriginDir     { GlassOrigin_LeftTop=0, GlassOrigin_RightTop, GlassOrigin_LeftBottom, GlassOrigin_RightBottom, GlassOrigin_Count };
enum CSOTDfectCode      {CSOT_PARTICLE=1,COST_CRACK,CSOT_MURA,CSOT_PROTRUDE,CSOT_DENT,CSOT_TFE_ABNORMAL,CSOT_BUBBLE,CSOT_SCRATCH};
enum Judgement { Judge_OK = 0, Judge_RP, Judge_NG, Judge_TR, Judge_PR, Judge_PT, Judge_Review, Judge_RC, Judge_Size, Judge_VI, Judge_Rework, Judge_Unknown };
enum JudgeCode { CODE_DEFAULT= 0,TRDF , BATR, DOBB, DOBS, DOWW, DOWB, DOWS };
 
#define LAYER_GT_50            _T("0114")
#define LAYER_GT_58            _T("0214")
#define LAYER_IGZO_50        _T("0134")
#define LAYER_IGZO_58        _T("0234")
#define LAYER_ESGI_50        _T("0144")
#define LAYER_ESGI_58        _T("0244")
#define LAYER_SD_50            _T("0154")
#define LAYER_SD_58            _T("0254")
#define LAYER_JAS_50        _T("0174")
#define LAYER_JAS_58        _T("0274")
#define LAYER_PIX_50        _T("0184")
#define LAYER_PIX_58        _T("0284")
 
//enum eCSOTRawData{
//    eCSOTRaw_LotLayerInfoData = 0,        // 10
//    eCSOTRaw_LayerNumInfoData,            // 11
//    eCSOTRaw_GlassInfoData,            // 30
//    eCSOTRaw_PanelInfoData,            // 41
//    eCSOTRaw_DefectInfoData,            // 50
//    eCSOTRaw_ElectroInfoData,            // 51
//    eCSOTRaw_CCDInfoData,                // 52
//    eCSOTRaw_ReviewInfoData,            // 53
//    eCSOTRaw_AlignInfoData,            // 55
//    eCPJTRaw_Count
//};
 
//
//enum eCSOTRawGlassIndex{        // 30
//    eCSOTRaw_Glass_Name = 0,            // ������ȣ                        // AA - 30 ����
//    eCSOTRaw_Glass_PanelNum,            // �˻� Panel ����                // 9999 - ��
//    eCSOTRaw_Glass_RecipeID,            // Recipe ID                    // AAAA
//    eCSOTRaw_Glass_ProcessTime,        // Processing Time                // 9999 - �� : ���Խ��� ~ ����Ϸ� �ð�
//    eCSOTRaw_Glass_GlassID,            // ����ID (VCR)                    // AAAAAAAAAAAA
//
//    eCSOTRaw_Glass_ReadResult,            // VCR �б� ���                // A
//    eCSOTRaw_Glass_CPFlag,                // CP Instruction Flag            // A - 0 : QMS Don't CP Processing, 1 : QMS IN the CP Processing
//    eCSOTRaw_Glass_ElectroNum,            // ������ Monitor ���� ����        // 9 - ȸ
//    eCSOTRaw_Glass_CCDNum,                // CCD Monitor ����                // 99 - ȸ
//    eCSOTRaw_Glass_ReviewNum,            // Review ����                    // 999 - ȸ
//
//    eCSOTRaw_Glass_Alignment,            // Alignment ����                // 9 - �ǽ� : 1, �̽ǽ� : 0
//    // [2018/07/05 08:38:46 by jylee] related Format ����
//    eCSOTRaw_Glass_Spare1,                // ����� 1
//    eCSOTRaw_Glass_Spare2                // ����� 2
//
//
//};
/*
enum eCSOTRawGlassIndex{        // 30
    eCSOTRaw_Glass_Name = 0,            // 1. ������ȣ                        // AA - 30 ����
    eCSOTRaw_Glass_PanelNum,            // 2. �˻� Panel ����                // 9999 - ��
    eCSOTRaw_Glass_RecipeID,            // 3. Recipe ID                        // AAAA
    eCSOTRaw_Glass_ProcessTime,        // 4. Processing Time                // 9999 - �� : ���Խ��� ~ ����Ϸ� �ð�
    eCSOTRaw_Glass_GlassID,            // 5. ����ID (VCR)                    // AAAAAAAAAAAA
 
    eCSOTRaw_Glass_ReadResult,            // 6. VCR �б� ���                    // A
    eCSOTRaw_Glass_CPFlag,                // 7. CP Instruction Flag            // A - 0 : QMS Don't CP Processing, 1 : QMS IN the CP Processing
    eCSOTRaw_Glass_ElectroNum,            // 8. ������ Monitor ���� ����        // 9 - ȸ
    eCSOTRaw_Glass_CCDNum,                // 9. CCD Monitor ����                // 99 - ȸ
    eCSOTRaw_Glass_ReviewNum,            // 10. Review ����                    // 999 - ȸ
 
    eCSOTRaw_Glass_Alignment,            // 11. Alignment ����                // 9 - �ǽ� : 1, �̽ǽ� : 0
    eCSOTRaw_Glass_TotalDefect,        // 12. �����Ѽ�                        // 99999
    eCSOTRaw_Glass_REVDefect,            // 13. ���� ���Լ�                    // 99999
    eCSOTRaw_Glass_FIXDefect,            // 14. ���� ���� ���Լ�                // 99999
    eCSOTRaw_Glass_MaskDefect,            // 15. MASK ���Լ�                    // 99999
 
    eCSOTRaw_Glass_CommonDefect,        // 16. ���� ���Լ�                    // 99999
    eCSOTRaw_Glass_Spare1,                // 17. ����� 1
    eCSOTRaw_Glass_Spare2                // 18. ����� 2
 
};
*/
//enum eCSOTRawPanelIndex{        // 41
//    eCSOTRaw_Panel_Name = 0,            // 1. ������ȣ                // AA - 41 ����
//    eCSOTRaw_Panel_CellNum,            // 2. Cell ��ȣ            // AAAA
//    eCSOTRaw_Panel_Judge,                // 3. Panel ���� ���        // A
//    eCSOTRaw_Panel_Reason,                // 4. ��������                // AAAAA
//    eCSOTRaw_Panel_CPFlag,                // 5. CP Flag                // AAA    - 0 : �䱸 ��, 1: �ǽ�, 8: �̽ǽ�, 9:Data��
//
//    eCSOTRaw_Panel_FrontCPDefectNum,    // 6. CP �� �Ѱ��Լ�        // 9999 - ��
//    eCSOTRaw_Panel_RearCPDefectNum,    // 7. CP �� �Ѱ��Լ�        // 9999 - ��
//    eCSOTRaw_Panel_Spare1,                // 8. ����� 1
//    eCSOTRaw_Panel_Spare2                // 9. ����� 2
//};
 
 
//enum eCSOTRawDefectIndex{        // 50
//    eCSOTRaw_Defect_Name = 0,            // ������ȣ                // 50 ����
//    eCSOTRaw_Defect_Code,                // �����ڵ�                // AAAAA
//    eCSOTRaw_Defect_CenterOriX,        // ������ǥX 1            // +-9999.999 mm ���� ���� �������� ��ǥ
//    eCSOTRaw_Defect_CenterOriY,        // ������ǥY 1            // +-9999.999 mm 
//    eCSOTRaw_Defect_Area,                // ���� Size(����)        // 999.99 um - ���� ���Ը���
//
//    eCSOTRaw_Defect_SizeType,            // ���� Size ����        // A - S/M/L/O
//    eCSOTRaw_Defect_DefectType,        // ���� Type            // A - N: Normal, C: Common, M: Mask
//    eCSOTRaw_Defect_Zone,                // ���� ��ġ            // A - Zone
//    eCSOTRaw_Defect_Size,                // ���� Size (CCD��)    // 99999 um2 - Camera Pixel Size
//    eCSOTRaw_Defect_SizeX,                // ����Size DX            // 999.99 um - ���� ���� X�� ����
//
//    eCSOTRaw_Defect_SizeY,                // ����Size DY            // 999.99 um - ���� ���� Y�� ����
//    eCSOTRaw_Defect_X,                    // ������ǥ X 2            // 9999.999 mm - QMS Calculation 
//    eCSOTRaw_Defect_Y,                    // ������ǥ Y 2            // 9999.999 mm
//    eCSOTRaw_Defect_PixelX,            // ���� Pixel ��ǥ X    // 99999
//    eCSOTRaw_Defect_PixelY,            // ���� Pixel ��ǥ Y    // 99999
//
//    eCSOTRaw_Defect_CPResult,            // CP ���                // AAA - 0: CP ��ġ ��, 1: CP��ġ, 8: �̽ǽ�
//    eCSOTRaw_Defect_Flag,                // ������� Flag        // AAAAA - 0 : ������� ��, 1: �����ĺ�
//    eCSOTRaw_Defect_ImageName,            // �̹��� ��ȣ            // AAAAA.A999.AAA -  Rule : " ����ID " + " . " + " B " ( Before ) + " ֧�� " + ?��� " .AAA "
//    eCSOTRaw_Defect_ImageSizeX,        // �̹��� Size X        // 9999.99 um
//    eCSOTRaw_Defect_ImageSizeY,        // �̹��� Size Y        // 9999.99 um
//
//    // [2018/07/05 08:42:57 by jylee] related Format ����
//    eCSOTRaw_Defect_Spare1                // ����� 1
//};
 
/*
enum eCSOTRawDefectIndex{        // 50
    eCSOTRaw_Defect_Name = 0,            // 1. ������ȣ                // 50 ����
    eCSOTRaw_Defect_Code,                // 2. �����ڵ�                // AAAAA
    eCSOTRaw_Defect_CenterOriX,        // 3. ������ǥX 1            // +-9999.999 mm ���� ���� �������� ��ǥ
    eCSOTRaw_Defect_CenterOriY,        // 4. ������ǥY 1            // +-9999.999 mm 
    eCSOTRaw_Defect_Area,                // 5. ���� Size(����)        // 999.99 um - ���� ���Ը���
 
    eCSOTRaw_Defect_SizeType,            // 6. ���� Size ����        // A - S/M/L/O
    eCSOTRaw_Defect_DefectType,        // 7. ���� Type            // A - N: Normal, C: Common, M: Mask
    eCSOTRaw_Defect_Zone,                // 8. ���� ��ġ            // A - Zone
    eCSOTRaw_Defect_Size,                // 9. ���� Size (CCD��)    // 99999 um2 - Camera Pixel Size
    eCSOTRaw_Defect_SizeX,                // 10. ����Size DX            // 999.99 um - ���� ���� X�� ����
 
    eCSOTRaw_Defect_SizeY,                // 11. ����Size DY            // 999.99 um - ���� ���� Y�� ����
    eCSOTRaw_Defect_X,                    // 12. ������ǥ X 2            // 9999.999 mm - QMS Calculation 
    eCSOTRaw_Defect_Y,                    // 13. ������ǥ Y 2            // 9999.999 mm
    eCSOTRaw_Defect_PixelX,            // 14. ���� Pixel ��ǥ X    // 99999
    eCSOTRaw_Defect_PixelY,            // 15. ���� Pixel ��ǥ Y    // 99999
 
    eCSOTRaw_Defect_CPResult,            // 16. CP ���                // AAA - 0: CP ��ġ ��, 1: CP��ġ, 8: �̽ǽ�
    eCSOTRaw_Defect_Flag,                // 17. ������� Flag        // AAAAA - 0 : ������� ��, 1: �����ĺ�
    eCSOTRaw_Defect_ImageName,            // 18. �̹��� ��ȣ            // AAAAA.A999.AAA -  Rule : " ����ID " + " . " + " B " ( Before ) + " ֧�� " + ?��� " .AAA "
    eCSOTRaw_Defect_ImageSizeX,        // 19. �̹��� Size X        // 9999.99 um
    eCSOTRaw_Defect_ImageSizeY,        // 20. �̹��� Size Y        // 9999.99 um
 
    // [2018/07/05 08:42:57 by jylee] related Format ����
    eCSOTRaw_Defect_CCDValue,            // 21. CCD ��ġ                // 99999
    eCSOTRaw_Defect_CCDNum,            // 22. ���԰��� ī�޶� ��ȣ // 99
    eCSOTRaw_Defect_SliceNum,            // 23. ���� ���° ��ĵ ����// 99
    eCSOTRaw_Defect_REVNum,            // 24. ���� ������ ī�޶�    // 99
    eCSOTRaw_Defect_DefectPosGray,        // 25. ������ġ �ֵ���        // 999
 
    eCSOTRaw_Defect_NormalPosGray,        // 26. ������ġ �ֵ���        // 999
    eCSOTRaw_Defect_Spare1,            // 27. ����� 1
    eCSOTRaw_Defect_Spare2                // 28. ����� 2
};
*/
 
//enum eCSOTRawElectroIndex{        // 51
//    eCSOTRaw_Electro_Name = 0,            // ������ȣ                // 51 ����
//    eCSOTRaw_Electro_Value,            // ����ġ                // +-9999.99
//    eCSOTRaw_Electro_Spare1            // �����1
//};
 
//enum eCSOTRawCCDIndex{            // 52
//    eCSOTRaw_CCD_Name = 0,                // ������ȣ                // 52 ����
//    eCSOTRaw_CCD_CamNum,                // CCD Camera ��ȣ        // AA 
//    eCSOTRaw_CCD_AvgGrayScale,            // ��� Gray-Scale        // 999
//    eCSOTRaw_CCD_Spare1                // �����1
//};
 
enum eCSOTRawReviewIndex{        // 53
    eCSOTRaw_Review_Name = 0,            // ������ȣ                // 53 ����
    eCSOTRaw_Review_PosX,                // ������ġ X            // +-9999.999 mm - ���� �߽� 
    eCSOTRaw_Review_PosY,                // ������ġ Y            // +-9999.999 mm
    eCSOTRaw_Review_ImageName,            // �̹�����                // AAAAA.A999.AAA
    eCSOTRaw_Review_SizeX,                // �̹��� Size X        // 9999.99 um
    eCSOTRaw_Review_SizeY,                // �̹��� Size Y        // 9999.99 um
    eCSOTRaw_Review_Spare1                // �����1
};
 
//enum eCSOTRawAlignmentIndex{    // 55
//    eCSOTRaw_Alignment_Name = 0,        // ������ȣ                // 55 ����
//    eCSOTRaw_Alignment_Result,            // Alignment ���        // 99999 - G: OK, N: NG, S:������ 
//    eCSOTRaw_Alignment_Rotation,        // Alignment Rotation    // +-9.999999 - ���� ȸ�� ����
//    eCSOTRaw_Alignment_A1ShiftX,        // A1 Shift��ġ X        // +-9.999999
//    eCSOTRaw_Alignment_A1ShiftY,        // A1 Shift��ġ Y        // +-9.999999
//
//    eCSOTRaw_Alignment_A2ShiftX,        // A2 Shift��ġ X        // +-9.999999
//    eCSOTRaw_Alignment_A2ShiftY,        // A2 Shift��ġ Y        // +-9.999999
//    eCSOTRaw_Alignment_A3ShiftX,        // A3 Shift��ġ X        // +-9.999999
//    eCSOTRaw_Alignment_A3ShiftY,        // A3 Shift��ġ Y        // +-9.999999
//    eCSOTRaw_Alignment_A4ShiftX,        // A4 Shift��ġ X        // +-9.999999
//
//    eCSOTRaw_Alignment_A4ShiftY,        // A4 Shift��ġ Y        // +-9.999999
//    eCSOTRaw_Alignment_Spare1            // �����1
//};
 
enum eCSOTRTMSRawData{    
    eCSOT_RTMS_GlassInfoItem = 0,    eCSOT_RTMS_GlassInfoData,    
    eCSOT_RTMS_CellInfoItem,        eCSOT_RTMS_CellInfoData, 
    eCSOT_RTMS_DefectInfoItem,        eCSOT_RTMS_DefectInfoData, 
    eCSOT_RTMS_CameraInfoItem,        eCSOT_RTMS_CameraInfoData, 
    eCSOT_RTMS_Count 
};
 
class AFX_EXT_CLASS CParsingGlassResult_CPJT : public CParsingGlassResult
{
public:
    CParsingGlassResult_CPJT(void);
    virtual ~CParsingGlassResult_CPJT(void);
 
 
 
    // �����޸� ���� ���Լ� CMARK=================================================================================
    // Memory -> GlassResult
    virtual void MemoryParsingFileToGlassResult(CGlassResult* pGlassResult, CDitGlassRawClient* pDitRawClient);
    virtual int MemoryParsingReviewResultDataToFile(CGlassResult* pGlassResult,  CDitGlassRawClient* pRawMemoryMgr) ;
    virtual int MemoryParsingWsiResultDataToFile(CGlassResult* pGlassResult,  CDitGlassRawClient* pRawMemoryMgr) ;
    virtual int MemoryParsingMeasureResultDataToFile(CGlassResult* pGlassResult,  CDitGlassRawClient* pRawMemoryMgr) ;
    virtual int MemoryParsingReflowResultDataToFile(CGlassResult* pGlassResult,  CDitGlassRawClient* pRawMemoryMgr);
    //====================================================================================================================
 
 
    virtual int ParsingWsiReflowResultDataToFile(CGlassResult* pGlassResult, CResultFileManager* pResultFileMgr);
    virtual void ParsingFileToGlassResult(CGlassResult* pGlassResult, CResultFileManager* pResultFileMgr);
    virtual int ParsingReviewResultDataToFile(CGlassResult* pGlassResult, CResultFileManager* pResultFileMgr);
    virtual int ParsingReviewResultDataCD(CGlassResult* pGlassResult, CResultFileManager* pResultFileMgr);
    virtual int ParsingReviewResultDataSD(CGlassResult* pGlassResult, CResultFileManager* pResultFileMgr);
    virtual int ParsingWsiResultDataToFile(CGlassResult* pGlassResult, CResultFileManager* pResultFileMgr);
    virtual int ParsingReflowResultData(CGlassResult* pGlassResult, CResultFileManager* pResultFileMgr);
 
    virtual int ParsingMeasureResultDataToFile(CGlassResult* pGlassResult, CResultFileManager* pResultFileMgr);
 
    virtual void ParsingRTMSFileToGlassResult(CGlassResult* pGlassResult, CResultFileManager* pResultFileMgr);
    virtual int    ParsingReviewResultDataToRTMSFile(CGlassResult* pGlassResult, CResultFileManager* pResultFileMgr);
    //virtual int ParsingDeepLearningFileToResultData( CGlassResult* pGlassResult, CResultFileManager* pResultFileMgr );
 
    BOOL    CheckResultFileAndCopy( CGlassResult* pGlassResult, CResultFileManager* pResultFileMgr, const SReviewResult *pResult, const CString& strFileName );
    //BOOL    CheckDeepLearningResult( CGlassResult* pGlassResult, CResultFileManager* pResultFileMgr, int nDLIndex, const CString& strFileName );
 
    // [2018/03/14 10:19:06 by jylee] related Deep Learning
    //virtual int ParsingDeepLearningResultDataToGlassResult( CGlassResult* pGlassResult, CResultFileManager* pResultFileMgr );
 
    virtual int ParsingDataReloadToGlassResult( CGlassResult* pGlassResult, CResultFileManager* pResultFileMgr, int nOrgGlass );
 
protected:
    
private:
    
    BOOL StartParshing();
    int GetDefectType(const CString& strValue);
    int GetGrayType(const CString& strValue);
    CString GetGrayType(const int& nValue);
    int GetProcessType(const CString& strValue);
    int GetSizeType(const CString& strValue);
    int GetStackType(const CString& strValue);
    int GetJudgeType(const CString& strValue);
    int GetOpticType(int nDefectType);
    int GetCSOTDefectType(const CString& strValue);
    int GetZoneType(const CString& strValue);                    // [2018/07/28 10:57:49 by jylee] related Zone Data
    //int GetFeatureType(const CString& strValue);
 
    int GetDefectCodeType( const CString& strRecipeID, const CString& strValue );        // [2018/03/14 09:47:51 by jylee] related Deep Learning
    int GetCSOTDefectCode(CString strDfectType);
    CString GetGradeType(int nJudgementType);//DefectJudgement
    int GetCodeType(CString strValue);
    
 
};