CalibrationProcess.cpp 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123
  1. #include "stdafx.h"
  2. #include <atlcomtime.h>
  3. #include "CalibrationProcess.h"
  4. #include "PixMatrix.h"
  5. #include "common_api.h"
  6. extern Log4CPP::Logger* gLogger;
  7. #define MAX_STRING 1024
  8. CalibrationProcess::CalibrationProcess():
  9. m_pZSKKPixMatrix(NULL),
  10. m_bDefectAccept(false),
  11. m_nOldDay(0),
  12. m_nTotalDefectLine(0),
  13. m_nTotalDefectColumn(0),
  14. m_nTotalDoubleDefectLine(0),
  15. m_nTotalDoubleDefectColumn(0),
  16. m_nTripleDoubleDefectLine(0),
  17. m_nTripleDoubleDefectColumn(0),
  18. m_nDefectLineMinGap(0),
  19. m_nDefectColumnMinGap(0),
  20. m_nTotalECV(0)
  21. {
  22. g_strAppPath = GetProcessDirectory();
  23. }
  24. CalibrationProcess::~CalibrationProcess()
  25. {
  26. }
  27. string CalibrationProcess::GetCalibDueDate(DeviceIndexStruct DeviceConf, string strCalibDate)
  28. {
  29. Info( "GetCalibDueDate from {$}", strCalibDate.c_str());
  30. if (strCalibDate.size()<8)
  31. {
  32. return "0";
  33. }
  34. COleDateTime obCalibTime;
  35. string strYear = strCalibDate.substr(0, 4);
  36. int nYear = atoi(strYear.c_str());
  37. string strMonth = strCalibDate.substr(4, 2);
  38. int nMonth = atoi(strMonth.c_str());
  39. string strDay = strCalibDate.substr(6, 2);
  40. int nDay = atoi(strDay.c_str());
  41. string strLog;
  42. Info( "Calibration Date:{$}{$}{$}", nYear, nMonth, nDay);
  43. obCalibTime.SetDate(nYear, nMonth, nDay);
  44. COleDateTimeSpan obSpanTime(DeviceConf.nCalibDueSetting, 0, 0, 0);
  45. COleDateTime obDueTime = obCalibTime + obSpanTime;
  46. Info( "Calibration Due: {$}{$}{$}", obDueTime.GetYear(), obDueTime.GetMonth(), obDueTime.GetDay());
  47. char szTemp[MAX_STRING] = { 0 };
  48. sprintf_s(szTemp, "%d%.2d%.2d", obDueTime.GetYear(), obDueTime.GetMonth(), obDueTime.GetDay());
  49. //auto szTemp = std::to_string(obDueTime.GetYear()) + std::to_string(obDueTime.GetMonth()) + std::to_string(obDueTime.GetDay());
  50. //sprintf(szTemp, "{$}{$}{$}", , , );
  51. string strCalibDue = szTemp;
  52. Info( "Calibration Due result: {$}", strCalibDue.c_str());
  53. return strCalibDue;
  54. }
  55. bool CalibrationProcess::CheckCalibartionDue(DeviceIndexStruct DeviceConf)
  56. {
  57. Info( "[Checking Calibration Date]");
  58. COleDateTime obNowTime = COleDateTime::GetCurrentTime();
  59. if (DeviceConf.strCalibrationDate == " " && m_nOldDay != obNowTime.GetDay())
  60. {
  61. m_nOldDay = obNowTime.GetDay();
  62. //OnWarn(m_nDeviceIndex, WAR_FPD_LOAD_CORRECT_FILE, L"");
  63. return false;
  64. }
  65. //endif
  66. COleDateTime obCalibTime;
  67. string strYear = "";
  68. int nYear = 1970;
  69. string strMonth = "";
  70. int nMonth = 1;
  71. string strDay = "";
  72. int nDay = 1;
  73. if (DeviceConf.strCalibrationDate != " ")
  74. {
  75. strYear = DeviceConf.strCalibrationDate.substr(0, 4);
  76. strMonth = DeviceConf.strCalibrationDate.substr(4, 2);
  77. strDay = DeviceConf.strCalibrationDate.substr(6, 2);
  78. nYear = atoi(strYear.c_str());
  79. nMonth = atoi(strMonth.c_str());
  80. nDay = atoi(strDay.c_str());
  81. }
  82. obCalibTime.SetDate(nYear, nMonth, nDay);
  83. COleDateTimeSpan obSpanTime = obNowTime - obCalibTime;
  84. string strLog;
  85. Info( "Current Date:{$}{$}{$}", obNowTime.GetYear(), obNowTime.GetMonth(), obNowTime.GetDay());
  86. Info( "Calibration Date:{$}: year {$}, month {$}, day {$}", DeviceConf.strCalibrationDate, nYear, nMonth, nDay);
  87. double nSpanTimeTotalDays = obSpanTime.GetTotalDays();
  88. Info( "nSpanTimeTotalDays :{$} , m_nOldDay {$}", nSpanTimeTotalDays, m_nOldDay);
  89. if ((nSpanTimeTotalDays >= DeviceConf.nCalibDueSetting) && (m_nOldDay != obNowTime.GetDay()))
  90. {
  91. Info( "[Calibration File is out of Date]");
  92. //DeviceConf.strCalibrationDate = " ";//fixbug 12406
  93. m_nOldDay = obNowTime.GetDay();
  94. return false;
  95. }
  96. m_nOldDay = obNowTime.GetDay();
  97. Info( "[Calibration File is Normal]");
  98. return true;
  99. }