#pragma once
|
|
#include "GlassRawBase.h"
|
#include "GlassRawRTMS.h"
|
#include "StackResultCPJT.h"
|
#include "AnaResultFile.h"
|
#include "MacroResultFile.h"
|
#include "CustomizeReview.h"
|
#include "InterfaceFTP.h"
|
#include "RawResultReader.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();*/};
|
/* <LJC 20211122 : #3820 ADD Start> */
|
virtual void DownLoadMergeFile(CgrmGlassRawData* pData);
|
virtual void SearchFIle(CgrmGlassRawData* pData);
|
/* <LJC 20211122 : #3820 ADD End> */
|
\
|
|
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);
|
/*< KJG 20211229 - #3846 MOD Start >*/
|
//void makeDataGlass(CString& strLine, _grmGlassData* pGlassData);
|
void makeDataGlass(CString& strLine, CgrmGlassRawData* pData, _grmGlassData* pGlassData);
|
/*< KJG 20211229 - #3846 MOD End >*/
|
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;
|
CRawResultReader m_RawMergeResult;
|
BOOL m_bReviewEndCheck; // InspectEnd ½Ã¿¡ Raw_im Æú´õ¿¡ SubFile »ý¼º ¾ÈÇϱâ À§ÇØ »ç¿ë [ 21-03-18 KJG ]
|
CTime m_tmReviewStart;
|
CTime m_tmReviewEnd;
|
/* <LJC 20211122 : #3820 ADD Start> */
|
int m_nRawMergeIdx=0;
|
int m_nWriteRawDefectIdx;
|
/* <LJC 20211122 : #3820 ADD End> */
|
};
|
|
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; }
|
};
|