SDC C-Project CF Review 프로그램
LYW
2021-10-15 e5fa774d622d6852fe8e1f033045aed221649108
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; }
};