From b9b6752e83c701cc67241923d2b74dc3a963d243 Mon Sep 17 00:00:00 2001
From: LYW <leeyeanwoo@diteam.co.kr>
Date: 월, 27 9월 2021 13:13:23 +0900
Subject: [PATCH] Ongoing100 #3486 CF AOI Review Review History 프로그램 테스트 및 적용

---
 ReviewHistory/ReveiwHistory/GlassRawBase.cpp |  131 +++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 131 insertions(+), 0 deletions(-)

diff --git a/ReviewHistory/ReveiwHistory/GlassRawBase.cpp b/ReviewHistory/ReveiwHistory/GlassRawBase.cpp
new file mode 100644
index 0000000..b8c7ebe
--- /dev/null
+++ b/ReviewHistory/ReveiwHistory/GlassRawBase.cpp
@@ -0,0 +1,131 @@
+#include "StdAfx.h"
+#include "GlassRawBase.h"
+
+#include "akLoggerExt.h"
+
+CGlassRawBase::CGlassRawBase(void)
+{
+}
+
+CGlassRawBase::~CGlassRawBase(void)
+{
+}
+
+BOOL CGlassRawBase::WriteBinFile( CgrmGlassRawData* pData )
+{
+	AKLOG("WriteBinFile Start");
+	CString strFileName;
+	strFileName.Format("%s\\%s", pData->GetGlassData()->m_strPath, pData->GetGlassData()->m_strFileName);
+	FILE* pf = fopen(strFileName.GetBuffer(0), "wb");
+	if(pf)
+	{
+		fwrite(pData->GetMemInfo(), sizeof(_grmDitMemInfo), 1, pf);
+
+		fwrite(pData->GetGlassData(), pData->GetMemInfo()->m_nSizeOfGlassData, sizeof(char), pf);
+		
+		for(int i=0; i<pData->GetGlassData()->m_nCellNum; i++)
+		{
+			fwrite(pData->GetCellData(i), pData->GetMemInfo()->m_nSizeOfCellData, sizeof(char), pf);
+		}
+
+		for(int i=0; i<pData->GetGlassData()->m_nDefectNum; i++)
+		{
+			fwrite(pData->GetDefectData(i), pData->GetMemInfo()->m_nSizeOfDefectData, sizeof(char), pf);
+		}
+
+		fclose(pf);
+	}
+	else
+	{
+		AKLOG("WriteBinFile Fail");
+		return FALSE;
+	}
+	AKLOG("WriteBinFile Finish");
+	return TRUE;
+}
+
+BOOL CGlassRawBase::ReadBinFile( CgrmGlassRawData* pData )
+{
+	CString strFileName;
+	strFileName.Format("%s\\%s", pData->GetGlassData()->m_strPath, pData->GetGlassData()->m_strFileName);
+	FILE* pf = fopen(strFileName.GetBuffer(0), "rb");
+	if(pf)
+	{
+		_grmDitMemInfo MemInfo;
+		fread(&MemInfo, sizeof(_grmDitMemInfo), 1, pf);
+
+		//pData->ImportGlassRaw(pData->GetMemInfo(), NULL);
+		BOOL bFileFormDiff = FALSE;
+		bFileFormDiff = FALSE;
+		{
+			if(pData->GetMemInfo()->m_nSizeOfGlassData  !=  MemInfo.m_nSizeOfGlassData)  bFileFormDiff |= TRUE;
+			if(pData->GetMemInfo()->m_nSizeOfBlockData  !=  MemInfo.m_nSizeOfBlockData)  bFileFormDiff |= TRUE;
+			if(pData->GetMemInfo()->m_nSizeOfCellData   !=  MemInfo.m_nSizeOfCellData)   bFileFormDiff |= TRUE;
+			if(pData->GetMemInfo()->m_nSizeOfDefectData !=  MemInfo.m_nSizeOfDefectData) bFileFormDiff |= TRUE;
+
+			//if(pData->m_nCellMaxDataNum < m_pGlassData->m_nCellNum) return FALSE;
+			//if(pData->m_nDefectMaxDataNum < m_pGlassData->m_nDefectNum) return FALSE;
+
+			if(bFileFormDiff) {fclose(pf); return FALSE;}
+		}
+
+		fread(pData->GetGlassData(), pData->GetMemInfo()->m_nSizeOfGlassData, sizeof(char), pf);
+
+		bFileFormDiff = FALSE;
+		{
+			if(pData->GetMemInfo()->m_nCellMaxDataNum < pData->GetGlassData()->m_nCellNum)		bFileFormDiff |= TRUE;
+			if(pData->GetMemInfo()->m_nDefectMaxDataNum < pData->GetGlassData()->m_nDefectNum)	bFileFormDiff |= TRUE;
+
+			if(bFileFormDiff) {fclose(pf); return FALSE;}
+		}
+
+		for(int i=0; i<pData->GetGlassData()->m_nCellNum; i++)
+		{
+			fread(pData->GetCellData(i), pData->GetMemInfo()->m_nSizeOfCellData, sizeof(char), pf);
+		}
+
+		for(int i=0; i<pData->GetGlassData()->m_nDefectNum; i++)
+		{
+			fread(pData->GetDefectData(i), pData->GetMemInfo()->m_nSizeOfDefectData, sizeof(char), pf);
+		}
+
+		fclose(pf);
+	}
+	else
+	{
+		return FALSE;
+	}
+
+	return TRUE;
+}
+
+BOOL CGlassRawBase::ReviewWriteBin(CgrmGlassRawData* pData)
+{
+	CString strFileName;
+	strFileName.Format("D:\\DIT_ResultData\\RawBin\\%s", pData->GetGlassData()->m_strFileName);
+	FILE* pf = fopen(strFileName.GetBuffer(0), "wb");
+	if (pf)
+	{
+		fwrite(pData->GetMemInfo(), sizeof(_grmDitMemInfo), 1, pf);
+
+		fwrite(pData->GetGlassData(), pData->GetMemInfo()->m_nSizeOfGlassData, sizeof(char), pf);
+
+		for (int i = 0; i < pData->GetGlassData()->m_nCellNum; i++)
+		{
+			fwrite(pData->GetCellData(i), pData->GetMemInfo()->m_nSizeOfCellData, sizeof(char), pf);
+		}
+
+		for (int i = 0; i < pData->GetGlassData()->m_nDefectNum; i++)
+		{
+			fwrite(pData->GetDefectData(i), pData->GetMemInfo()->m_nSizeOfDefectData, sizeof(char), pf);
+		}
+
+		fclose(pf);
+	}
+	else
+	{
+		return FALSE;
+	}
+
+	return TRUE;
+}
\ No newline at end of file

--
Gitblit v1.9.3