From a6552335164ce062567b76aa7d097fd046129474 Mon Sep 17 00:00:00 2001 From: LYW <leeyeanwoo@diteam.co.kr> Date: 금, 23 7월 2021 10:07:55 +0900 Subject: [PATCH] Ongoing90 #3517 CF AOI Review 자가진단 기능 개선 --- ReviewHistory/ReveiwHistory/GlassRawCPJT.h | 134 ++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 134 insertions(+), 0 deletions(-) diff --git a/ReviewHistory/ReveiwHistory/GlassRawCPJT.h b/ReviewHistory/ReveiwHistory/GlassRawCPJT.h new file mode 100644 index 0000000..88b6901 --- /dev/null +++ b/ReviewHistory/ReveiwHistory/GlassRawCPJT.h @@ -0,0 +1,134 @@ +#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; } +}; \ No newline at end of file -- Gitblit v1.9.3