#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; iGetGlassData()->m_nCellNum; i++) { fwrite(pData->GetCellData(i), pData->GetMemInfo()->m_nSizeOfCellData, sizeof(char), pf); } for(int i=0; iGetGlassData()->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; iGetGlassData()->m_nCellNum; i++) { fread(pData->GetCellData(i), pData->GetMemInfo()->m_nSizeOfCellData, sizeof(char), pf); } for(int i=0; iGetGlassData()->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; }