»õ ÆÄÀÏ |
| | |
| | | #pragma once |
| | | |
| | | #include "GlassRawBase.h" |
| | | #include "GlassRawRTMS.h" |
| | | #include "StackResultCPJT.h" |
| | | #include "AnaResultFile.h" |
| | | #include "MacroResultFile.h" |
| | | #include "CustomizeReview.h" |
| | | #include "InterfaceFTP.h" |
| | | |
| | | class CGlassRawCPJT : public CGlassRawBase, public CInterfaceFTP |
| | | { |
| | | public: |
| | | enum emDefectMemberType |
| | | { |
| | | DMT_DefectJudge = 0, |
| | | DMT_DefectSizeType |
| | | }; |
| | | |
| | | public: |
| | | CGlassRawCPJT(void); |
| | | ~CGlassRawCPJT(void); |
| | | |
| | | static char* GetClassName(){return "C-PJT";}; |
| | | |
| | | virtual BOOL SequenceGlassLoading(CgrmGlassRawData* pData); |
| | | virtual BOOL SequenceInspectEnd(CgrmGlassRawData* pData); |
| | | virtual BOOL SequenceReviewStart(CgrmGlassRawData* pData); |
| | | virtual BOOL SequenceReviewEnd(CgrmGlassRawData* pData); |
| | | |
| | | |
| | | virtual BOOL WriteAOIFile(CgrmGlassRawData* pData); |
| | | virtual BOOL ReadAOIFile(CgrmGlassRawData* pData){return TRUE;}; |
| | | |
| | | virtual BOOL SequenceFtpUpload(char* pRawFileName); |
| | | |
| | | virtual void NotifyUpdateOptionInfo(){/*m_StackResult.readOptionFile();*/}; |
| | | |
| | | |
| | | protected: |
| | | |
| | | virtual void SendMessageFTPUploadRaw(_grmGlassData* pGlassData); |
| | | virtual void SendMessageFTPDownloadStack(_grmGlassData* pGlassData); |
| | | virtual void SendMessageFTPUploadImage(_grmGlassData* pGlassData, emFTPCommand sort); |
| | | virtual BOOL SendMessageFTPUploadIndexFile(_grmGlassData* pGlassData); |
| | | virtual void SendMessageFTPDownloadDataFile( _grmGlassData* pGlassData); |
| | | virtual void GetFormatDescription(emFTPCommand sort, char* pServerPath, char* pServerFile, char* pLocalPath, char* pLocalFile, char* pRTMSFile,char* pServerFileSubPath, char* pServerFileSubName,_grmGlassData* pGlassData); |
| | | |
| | | |
| | | BOOL ReadMuraFile(CgrmGlassRawData* pData); |
| | | BOOL MakeAOIFile(CgrmGlassRawData* pData); |
| | | |
| | | void SetRawFilePath(CString strPath) { m_strRawFilePath = strPath; } |
| | | CString GetRawFilePath() { return m_strRawFilePath; } |
| | | |
| | | void makeDataHeader(CString& strLine, _grmGlassData* pGlassData); |
| | | void makeDataGlass(CString& strLine, _grmGlassData* pGlassData); |
| | | void makeDataCell(CString& strLine, CgrmGlassRawData* pData, _grmCellData* pCellData); |
| | | BOOL makeDataDefect(CString& strLine, CgrmGlassRawData* pData, _grmDefectData* pDefectData); |
| | | |
| | | CString GetDefectInfoToString(emDefectMemberType nDefectInfoType, int nParam); |
| | | |
| | | public: |
| | | void SetEquipType(int nType){m_nEquipType = nType;}; |
| | | CString GetWsiDefectType(int nType); |
| | | protected: |
| | | |
| | | protected: |
| | | int m_nEquipType; // 0:Inline, 1:Offline |
| | | |
| | | CString m_strRawFilePath; |
| | | |
| | | CAnaResultFile m_GlassRawAna; //ëíë¶ìì©ê²°ê³¼íì¼ [ê¹íí2020/9/15] |
| | | CGlassRawRTMS m_GlassRawRTMS;//RTMSì© ê²°ê³¼íì¼ ìì±ê´ë¦¬ [ê¹íí 2018/12/5] |
| | | CMacroResultFile m_MuraResultFile; //무ë¼ì© ê²°ê³¼íì¼ ìì±ê´ë¦¬ [ê¹íí 2018/12/5] |
| | | |
| | | CStackResultCPJT m_StackResult; |
| | | BOOL m_bReviewEndCheck; // InspectEnd ìì Raw_im í´ëì SubFile ìì± ìí기 ìí´ ì¬ì© [ 21-03-18 KJG ] |
| | | CTime m_tmReviewStart; |
| | | CTime m_tmReviewEnd; |
| | | |
| | | int m_nWriteRawDefectIdx; |
| | | }; |
| | | |
| | | struct stCellData |
| | | { |
| | | int iModel; |
| | | int ixCell, iyCell; |
| | | void SetIndex(int im, int ix, int iy) |
| | | { |
| | | iModel = im; |
| | | ixCell = ix; |
| | | iyCell = iy; |
| | | } |
| | | BOOL AddDefect(_grmDefectData* pDefect) |
| | | { |
| | | if (iModel == pDefect->m_nModelIdx)// edge crackì í¬í¨ìëê².. 모ë¸ì´ í¨í´ë¶ì¸ì§ íì¸ìì
ì¤ì´ê¸°. |
| | | { |
| | | m_Defects.push_back(pDefect); |
| | | return TRUE; |
| | | } |
| | | return FALSE; |
| | | } |
| | | _grmDefectData* GetDefect(int i) { return m_Defects[i]; } |
| | | int GetDefectCount() { return (int)m_Defects.size(); } |
| | | std::vector<_grmDefectData*> m_Defects; |
| | | }; |
| | | struct stCellStorage |
| | | { |
| | | stCellData *m_pCells; |
| | | int m_nCell; |
| | | stCellStorage(int n) |
| | | { |
| | | m_nCell = n; |
| | | m_pCells = new stCellData[n]; |
| | | } |
| | | ~stCellStorage() |
| | | { |
| | | delete[] m_pCells; |
| | | } |
| | | stCellData* GetCellData(int iCell) |
| | | { |
| | | return m_pCells + iCell; |
| | | } |
| | | BOOL AddDefect(_grmDefectData *pDefect) |
| | | { |
| | | if (pDefect->m_nCellIdx < 0) |
| | | { |
| | | return FALSE; |
| | | } |
| | | return GetCellData(pDefect->m_nCellIdx)->AddDefect(pDefect); |
| | | } |
| | | int GetCellCount() { return m_nCell; } |
| | | }; |