#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 { TRDF = 0, 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);
|
|
};
|