SDC C-Project CF Review 프로그램
LYW
2021-07-08 9cbd9e554f9956b3b945b51602f1d4a3fa0353e1
ReviewHistory/ReveiwHistory/AnaResultFile.cpp
»õ ÆÄÀÏ
@@ -0,0 +1,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, "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, %.3lf, %.3lf, %d, %d, %d, %d, %d, %d, %d, %d, %d",
            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, %.3lf, %.3lf, %d, %d, %d, %d, %d, %d, %d, %d, %d",
            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;
}