#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); };