SDC C-Project CF Review 프로그램
LYW
2021-06-23 598cef9de915e5554fc2f7572b24f15d8a4acf41
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
#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;
}