From 1fd49a571338b6c946bb05dcdf59ec1468df5c50 Mon Sep 17 00:00:00 2001
From: SWK <sungwk82@diteam.co.kr>
Date: 목, 22 12월 2022 12:31:43 +0900
Subject: [PATCH] ongoing50 #4403 CF AOI Reveiw TACT 지연 개선 1. 일정 시간 유지 신호 처리 시 동기화로 인한 불합리 개선 - 일정 시간 유지 필요 시 스래드풀 작업큐를 이용하여 루프처리 방식으로 변경 - 유지 신호 처리 중 출력 신호 발생 시 작업큐에 등록하여 유지 신호와 결합하여 출력 처리 2. FDC 보고 항목 중 SW 버전 체크 루프 불합리 개선 - 프로그램 시작 시 연동 프로그램 버전 체크 간 실행되지 않는 프로그램이 있는 경우 무한 루프 발생 - 무한 루프로 인한 CPU 점유 상승->루프 중간 Sleep추가 및 코드 간소화 3. 로그 메시지에 시간 ms단위 추가(황만수SM 작업 내역 병합)

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