| | |
| | | BOOL CAnaResultFile::MakeAnaFile(CgrmGlassRawData* pData) |
| | | { |
| | | //return TRUE; |
| | | |
| | | /* < KJG 20220225 - #4000 MOD Start >*/ |
| | | //CString strFilePathName; |
| | | //strFilePathName.Format("%s\\%sana", pData->GetGlassData()->m_strPath, pData->GetGlassData()->m_strFileName); |
| | | char* pCellCode = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"; |
| | | CString strFilePathName; |
| | | strFilePathName.Format("%s\\%sana", pData->GetGlassData()->m_strPath, pData->GetGlassData()->m_strFileName); |
| | | CString strFileName = pData->GetGlassData()->m_strFileName; |
| | | strFileName.Replace(".bin", ".csv"); |
| | | strFilePathName.Format("%s\\%s", pData->GetGlassData()->m_strPath, strFileName); |
| | | /* < KJG 20220225 - #4000 MOD End >*/ |
| | | |
| | | FILE* pf = fopen(strFilePathName.GetBuffer(0), "w"); |
| | | if (pf == NULL) |
| | |
| | | AKLOG("MakeAOIFile Fail : [%s]", strFilePathName.GetBuffer(0)); |
| | | return FALSE; |
| | | } |
| | | /* < KJG 20220225 - #4000 MOD Start >*/ |
| | | //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"); |
| | | fprintf(pf, "GlassID, SubPanelID, m_strImageName, m_strDefectCode, UMCenterAlignX, UMCenterAlignY, m_nLevelSrcMin, m_nLevelSrcMax, m_nLevelSrcAvg, m_nLevelRefMin, m_nLevelRefMax, m_nLevelRefAvg, m_nLevelDiffMin, m_nLevelDiffMax, m_nLevelDiffAvg"); |
| | | /* < KJG 20220225 - #4000 MOD End >*/ |
| | | |
| | | 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 iDefect = 0; iDefect < pData->GetGlassData()->m_nDefectNum; iDefect++) |
| | | { |
| | | _grmDefectData* pDefect = pData->GetDefectData(iDefect); |
| | | /* < KJG 20220225 - #4000 ADD Start >*/ |
| | | CString strDefectCellID; |
| | | strDefectCellID.Format("%s%c%c", pData->GetGlassData()->m_strGlassID, '0' + pDefect->m_nCellIdx / 36, pCellCode[pDefect->m_nCellIdx % 36]); |
| | | /* < KJG 20220225 - #4000 ADD End >*/ |
| | | 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, |
| | | /* < KJG 20220225 - #4000 MOD Start >*/ |
| | | //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, |
| | | fprintf(pf, "%s, %s, %s, %s, %.3lf, %.3lf, %d, %d, %d, %d, %d, %d, %d, %d, %d", |
| | | pData->GetGlassData()->m_strGlassID, strDefectCellID.GetBuffer(0), 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); |
| | | /* < KJG 20220225 - #4000 MOD End >*/ |
| | | for (int iz = 0; iz < MAX_ZONE_NUM; iz++) |
| | | { |
| | | fprintf(pf, ",%d", pDefect->m_sZonePixelCount[iz]); |
| | |
| | | } |
| | | 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, |
| | | /* < KJG 20220225 - #4000 MOD Start >*/ |
| | | //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, |
| | | fprintf(pf, "%s, %s, %s, %s, %.3lf, %.3lf, %d, %d, %d, %d, %d, %d, %d, %d, %d", |
| | | pData->GetGlassData()->m_strGlassID, strDefectCellID.GetBuffer(0), 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); |
| | | /* < KJG 20220225 - #4000 MOD End >*/ |
| | | for (int iz = 0; iz < MAX_ZONE_NUM; iz++) |
| | | { |
| | | fprintf(pf, ",%d", pDefect->m_sZonePixelCount[iz]); |