SDC C-Project CF Review 프로그램
LYW
2021-08-10 8ac7359b04409c2a1426f9a179c00b1c966d0146
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
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
#include "StdAfx.h"
#include "AnaResultFile.h"
#include "akCore/akFileDB.h"
#include "akLoggerExt.h"
#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif
 
CAnaResultFile::CAnaResultFile(void)
{
}
 
CAnaResultFile::~CAnaResultFile(void)
{
}
 
BOOL CAnaResultFile::MakeAnaFile(CgrmGlassRawData* pData)
{
    //return TRUE;
 
    CString strFilePathName;
    strFilePathName.Format("%s\\%sana", pData->GetGlassData()->m_strPath, pData->GetGlassData()->m_strFileName);
 
    FILE* pf = fopen(strFilePathName.GetBuffer(0), "w");
    if (pf == NULL)
    {
        AKLOG("MakeAOIFile Fail : [%s]", strFilePathName.GetBuffer(0));
        return FALSE;
    }
 
    fprintf(pf, "%s\n", pData->GetGlassData()->m_strGlassID);
    fprintf(pf, "GlassID, m_strImageName, m_strDefectCode, UMCenterAlignX, UMCenterAlignY, m_nLevelSrcMin, m_nLevelSrcMax, m_nLevelSrcAvg, m_nLevelRefMin, m_nLevelRefMax, m_nLevelRefAvg, m_nLevelDiffMin, m_nLevelDiffMax, m_nLevelDiffAvg");
    for (int i = 0; i < MAX_ZONE_NUM; i++) fprintf(pf, ",Zone%02d", i);
    //210123 CJH - Zoneº° min, max, avg °ª Ç¥±â
    for (int i = 0; i < MAX_ZONE_NUM; i++) fprintf(pf, ",ZoneDiffMin%02d", i);
    for (int i = 0; i < MAX_ZONE_NUM; i++) fprintf(pf, ",ZoneDiffMax%02d", i);
    for (int i = 0; i < MAX_ZONE_NUM; i++) fprintf(pf, ",ZoneDiffAvg%02d", i);
    for (int i = 0; i < MAX_ZONE_NUM; i++) fprintf(pf, ",ZoneSrcMin%02d", i);
    for (int i = 0; i < MAX_ZONE_NUM; i++) fprintf(pf, ",ZoneSrcMax%02d", i);
    for (int i = 0; i < MAX_ZONE_NUM; i++) fprintf(pf, ",ZoneSrcAvg%02d", i);
    fprintf(pf, ", m_sDefectPeak, m_nPixelSize, DefectType, UMSize, Density, ScrtRatio, MergeState, Angle, Major, Minor, Compact, Thickness");
    fprintf(pf, "\n");
 
    for (int iDefect = 0; iDefect < pData->GetGlassData()->m_nDefectNum; iDefect++)
    {
        _grmDefectData* pDefect = pData->GetDefectData(iDefect);
        if (pData->GetGlassData()->m_nScanCoordinateY == 1) //ºÐÆÇ¼³ºñÀÇ °æ¿ì XY¹ÝÀü
        {
            fprintf(pf, "%s, %s, %s, %.3lf, %.3lf, %d, %d, %d, %d, %d, %d, %d, %d, %d",
                pData->GetGlassData()->m_strGlassID, pDefect->m_strAoiImageName, pDefect->m_strDefectCode, (double)pDefect->m_nUMCenterAlignY / 1000.0, (double)pDefect->m_nUMCenterAlignX / 1000.0,
                pDefect->m_nLevelSrcMin, pDefect->m_nLevelSrcMax, pDefect->m_nLevelSrcAvg,
                pDefect->m_nLevelRefMin, pDefect->m_nLevelRefMax, pDefect->m_nLevelRefAvg,
                pDefect->m_nLevelDiffMin, pDefect->m_nLevelDiffMax, pDefect->m_nLevelDiffAvg);
            for (int iz = 0; iz < MAX_ZONE_NUM; iz++)
            {
                fprintf(pf, ",%d", pDefect->m_sZonePixelCount[iz]);
            }
            //210123 CJH - Zoneº° min, max, avg °ª Ç¥±â
            for (int iz = 0; iz < MAX_ZONE_NUM; iz++)
            {
                fprintf(pf, ",%d", pDefect->m_sZoneValueMin[iz]);
            }
            for (int iz = 0; iz < MAX_ZONE_NUM; iz++)
            {
                fprintf(pf, ",%d", pDefect->m_sZoneValueMax[iz]);
            }
            for (int iz = 0; iz < MAX_ZONE_NUM; iz++)
            {
                fprintf(pf, ",%d", pDefect->m_sZoneValueAvg[iz]);
            }
            for (int iz = 0; iz < MAX_ZONE_NUM; iz++)
            {
                fprintf(pf, ",%d", pDefect->m_sZoneValueSrcMin[iz]);
            }
            for (int iz = 0; iz < MAX_ZONE_NUM; iz++)
            {
                fprintf(pf, ",%d", pDefect->m_sZoneValueSrcMax[iz]);
            }
            for (int iz = 0; iz < MAX_ZONE_NUM; iz++)
            {
                fprintf(pf, ",%d", pDefect->m_sZoneValueSrcAvg[iz]);
            }
            fprintf(pf, ",%d, %d, %d, %d, %d, %d, %d",
                pDefect->m_sDefectPeak, pDefect->m_nPixelSize, pDefect->m_DefectType, (int)pDefect->m_nUMSize, pDefect->m_nDensity, pDefect->m_nScratchRatio, pDefect->m_bMergeState);
 
            fprintf(pf, ", %d, %d, %d, %d, %d", pDefect->m_nAngle, pDefect->m_nMajor, pDefect->m_nMinor, pDefect->m_nCompact, pDefect->m_nThickness);
 
            fprintf(pf, "\n");
        }
        else
        {
            fprintf(pf, "%s, %s, %s, %.3lf, %.3lf, %d, %d, %d, %d, %d, %d, %d, %d, %d",
                pData->GetGlassData()->m_strGlassID, pDefect->m_strAoiImageName, pDefect->m_strDefectCode, (double)pDefect->m_nUMCenterAlignX / 1000.0, (double)pDefect->m_nUMCenterAlignY / 1000.0,
                pDefect->m_nLevelSrcMin, pDefect->m_nLevelSrcMax, pDefect->m_nLevelSrcAvg,
                pDefect->m_nLevelRefMin, pDefect->m_nLevelRefMax, pDefect->m_nLevelRefAvg,
                pDefect->m_nLevelDiffMin, pDefect->m_nLevelDiffMax, pDefect->m_nLevelDiffAvg);
            for (int iz = 0; iz < MAX_ZONE_NUM; iz++)
            {
                fprintf(pf, ",%d", pDefect->m_sZonePixelCount[iz]);
            }
            //210123 CJH - Zoneº° min, max, avg °ª Ç¥±â
            for (int iz = 0; iz < MAX_ZONE_NUM; iz++)
            {
                fprintf(pf, ",%d", pDefect->m_sZoneValueMin[iz]);
            }
            for (int iz = 0; iz < MAX_ZONE_NUM; iz++)
            {
                fprintf(pf, ",%d", pDefect->m_sZoneValueMax[iz]);
            }
            for (int iz = 0; iz < MAX_ZONE_NUM; iz++)
            {
                fprintf(pf, ",%d", pDefect->m_sZoneValueAvg[iz]);
            }
            for (int iz = 0; iz < MAX_ZONE_NUM; iz++)
            {
                fprintf(pf, ",%d", pDefect->m_sZoneValueSrcMin[iz]);
            }
            for (int iz = 0; iz < MAX_ZONE_NUM; iz++)
            {
                fprintf(pf, ",%d", pDefect->m_sZoneValueSrcMax[iz]);
            }
            for (int iz = 0; iz < MAX_ZONE_NUM; iz++)
            {
                fprintf(pf, ",%d", pDefect->m_sZoneValueSrcAvg[iz]);
            }
            fprintf(pf, ",%d, %d, %d, %d, %d, %d, %d",
                pDefect->m_sDefectPeak, pDefect->m_nPixelSize, pDefect->m_DefectType, (int)pDefect->m_nUMSize, pDefect->m_nDensity, pDefect->m_nScratchRatio, pDefect->m_bMergeState);
 
            fprintf(pf, ", %d, %d, %d, %d, %d", pDefect->m_nAngle, pDefect->m_nMajor, pDefect->m_nMinor, pDefect->m_nCompact, pDefect->m_nThickness);
 
            fprintf(pf, "\n");
        }
    }
    AKLOG("MakeAnaFile Complete %s", strFilePathName);
    fclose(pf);
 
    return TRUE;
}