From 7a7f5a677f5bddb571273c8f490ca88ca9653d67 Mon Sep 17 00:00:00 2001
From: LYW <leeyeanwoo@diteam.co.kr>
Date: 월, 18 10월 2021 18:25:48 +0900
Subject: [PATCH] Ongoing90 #3684 CF AOI Review 전설비 Review History Defect이미지 클릭시 Offset 자동 계산 기능 추가

---
 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