#include "stdafx.h" #include #include "CalibrationProcess.h" #include "PixMatrix.h" #include "common_api.h" extern Log4CPP::Logger* gLogger; #define MAX_STRING 1024 CalibrationProcess::CalibrationProcess(): m_pZSKKPixMatrix(NULL), m_bDefectAccept(false), m_nOldDay(0), m_nTotalDefectLine(0), m_nTotalDefectColumn(0), m_nTotalDoubleDefectLine(0), m_nTotalDoubleDefectColumn(0), m_nTripleDoubleDefectLine(0), m_nTripleDoubleDefectColumn(0), m_nDefectLineMinGap(0), m_nDefectColumnMinGap(0), m_nTotalECV(0) { g_strAppPath = GetProcessDirectory(); } CalibrationProcess::~CalibrationProcess() { } string CalibrationProcess::GetCalibDueDate(DeviceIndexStruct DeviceConf, string strCalibDate) { Info( "GetCalibDueDate from {$}", strCalibDate.c_str()); if (strCalibDate.size()<8) { return "0"; } COleDateTime obCalibTime; string strYear = strCalibDate.substr(0, 4); int nYear = atoi(strYear.c_str()); string strMonth = strCalibDate.substr(4, 2); int nMonth = atoi(strMonth.c_str()); string strDay = strCalibDate.substr(6, 2); int nDay = atoi(strDay.c_str()); string strLog; Info( "Calibration Date:{$}{$}{$}", nYear, nMonth, nDay); obCalibTime.SetDate(nYear, nMonth, nDay); COleDateTimeSpan obSpanTime(DeviceConf.nCalibDueSetting, 0, 0, 0); COleDateTime obDueTime = obCalibTime + obSpanTime; Info( "Calibration Due: {$}{$}{$}", obDueTime.GetYear(), obDueTime.GetMonth(), obDueTime.GetDay()); char szTemp[MAX_STRING] = { 0 }; sprintf_s(szTemp, "%d%.2d%.2d", obDueTime.GetYear(), obDueTime.GetMonth(), obDueTime.GetDay()); //auto szTemp = std::to_string(obDueTime.GetYear()) + std::to_string(obDueTime.GetMonth()) + std::to_string(obDueTime.GetDay()); //sprintf(szTemp, "{$}{$}{$}", , , ); string strCalibDue = szTemp; Info( "Calibration Due result: {$}", strCalibDue.c_str()); return strCalibDue; } bool CalibrationProcess::CheckCalibartionDue(DeviceIndexStruct DeviceConf) { Info( "[Checking Calibration Date]"); COleDateTime obNowTime = COleDateTime::GetCurrentTime(); if (DeviceConf.strCalibrationDate == " " && m_nOldDay != obNowTime.GetDay()) { m_nOldDay = obNowTime.GetDay(); //OnWarn(m_nDeviceIndex, WAR_FPD_LOAD_CORRECT_FILE, L""); return false; } //endif COleDateTime obCalibTime; string strYear = ""; int nYear = 1970; string strMonth = ""; int nMonth = 1; string strDay = ""; int nDay = 1; if (DeviceConf.strCalibrationDate != " ") { strYear = DeviceConf.strCalibrationDate.substr(0, 4); strMonth = DeviceConf.strCalibrationDate.substr(4, 2); strDay = DeviceConf.strCalibrationDate.substr(6, 2); nYear = atoi(strYear.c_str()); nMonth = atoi(strMonth.c_str()); nDay = atoi(strDay.c_str()); } obCalibTime.SetDate(nYear, nMonth, nDay); COleDateTimeSpan obSpanTime = obNowTime - obCalibTime; string strLog; Info( "Current Date:{$}{$}{$}", obNowTime.GetYear(), obNowTime.GetMonth(), obNowTime.GetDay()); Info( "Calibration Date:{$}: year {$}, month {$}, day {$}", DeviceConf.strCalibrationDate, nYear, nMonth, nDay); double nSpanTimeTotalDays = obSpanTime.GetTotalDays(); Info( "nSpanTimeTotalDays :{$} , m_nOldDay {$}", nSpanTimeTotalDays, m_nOldDay); if ((nSpanTimeTotalDays >= DeviceConf.nCalibDueSetting) && (m_nOldDay != obNowTime.GetDay())) { Info( "[Calibration File is out of Date]"); //DeviceConf.strCalibrationDate = " ";//fixbug 12406 m_nOldDay = obNowTime.GetDay(); return false; } m_nOldDay = obNowTime.GetDay(); Info( "[Calibration File is Normal]"); return true; }