SDC C-Project CF Review 프로그램
LYW
2021-09-23 c77236e1522caa3e2082dd7b5b32f6c30b125172
ReviewSystem/M_AutoDiagnosisManager/DiagnosisProcessor.cpp
@@ -62,7 +62,7 @@
      m_pManager->m_bProcessAll = true;
      ProcessAll();
      break;
      //#3514_LYW_CF AOI Review 자가진단 기능 개선_START
      /*< LYW 20210719 : #3517 ADD Start >*/
   case DiagnosisMode_Review :
      strMessage.Format(_T("[CDiagnosisProcessor] DiagnosisMode_Review START"));
      m_pDP2P->IDP2P_DisplayMessage(0, strMessage);
@@ -77,7 +77,7 @@
      ProcessFlatness();
      Sleep(1000);
      if (ProcessDiagnosisJudge() == FALSE) {
      if (ProcessDiagnosisJudge(nProcessMode) == FALSE) {
         strMessage.Format(_T("[CDiagnosisProcessor] DiagnosisJudge FAIL"));
         m_pDP2P->IDP2P_DisplayMessage(0, strMessage);
      }
@@ -97,7 +97,7 @@
      ProcessWsi();
      Sleep(1000);
      if (ProcessDiagnosisJudge() == FALSE) {
      if (ProcessDiagnosisJudge(nProcessMode) == FALSE) {
         strMessage.Format(_T("[CDiagnosisProcessor] DiagnosisJudge FAIL"));
         m_pDP2P->IDP2P_DisplayMessage(0, strMessage);
      }
@@ -111,17 +111,17 @@
      m_pManager->m_bProcessAll = false;
      ProcessSquareness();
      Sleep(1000);
      if (ProcessDiagnosisJudge() == FALSE) {
      if (ProcessDiagnosisJudge(nProcessMode) == FALSE) {
         strMessage.Format(_T("[CDiagnosisProcessor] DiagnosisJudge FAIL"));
         m_pDP2P->IDP2P_DisplayMessage(0, strMessage);
      }
      break;
      //#3514_LYW_CF AOI Review 자가진단 기능 개선_END
      /*< LYW 20210719 : #3517 ADD End >*/
   case DiagnosisMode_Flatness:
      m_pManager->m_bProcessAll = false;
      ProcessFlatness();
      Sleep(1000);
      if (ProcessDiagnosisJudge() == FALSE) {
      if (ProcessDiagnosisJudge(nProcessMode) == FALSE) {
         strMessage.Format(_T("[CDiagnosisProcessor] DiagnosisJudge FAIL"));
         m_pDP2P->IDP2P_DisplayMessage(0, strMessage);
      }
@@ -167,15 +167,15 @@
   m_pDP2P->IDP2P_SetDialogTap(1);
    ProcessFlatness();
   //#3514_LYW_CF AOI Review 자가진단 기능 개선_START
   /*< LYW 20210719 : #3517 ADD Start >*/
   //Sleep(2000);
   Sleep(1000);
   if (ProcessDiagnosisJudge() == FALSE) {
   if (ProcessDiagnosisJudge(DiagnosisMode_All) == FALSE) {
      strMessage.Format(_T("[CDiagnosisProcessor] DiagnosisJudge FAIL"));
      m_pDP2P->IDP2P_DisplayMessage(0, strMessage);
   }
   //#3514_LYW_CF AOI Review 자가진단 기능 개선_START
   /*< LYW 20210719 : #3517 ADD Start >*/
   m_pManager->m_bProcessAll = false;
@@ -300,10 +300,10 @@
      int stTime = GetTickCount();
      while (1)
      {
         //#3514_LYW_CF AOI Review 자가진단 기능 개선_START
         /*< LYW 20210719 : #3517 ADD Start >*/
         //if (11000 <= GetTickCount() - stTime)
         //#3514_LYW_CF AOI Review 자가진단 기능 개선_END
         if (1000 <= GetTickCount() - stTime)
         /*< LYW 20210719 : #3517 ADD End >*/
         if (1500 <= GetTickCount() - stTime)
         {
            break;
         }
@@ -311,10 +311,10 @@
      }
      m_pDP2P->IDP2P_SetAFMTracking(nSelModuleIndex, TRUE);
      //#3514_LYW_CF AOI Review 자가진단 기능 개선_START
      /*< LYW 20210719 : #3517 ADD Start >*/
      //Sleep(1000);
      Sleep(500);
      //#3514_LYW_CF AOI Review 자가진단 기능 개선_END
      Sleep(1000);
      /*< LYW 20210719 : #3517 ADD End >*/
      CString strimagename;
      strimagename.Format(_T("%s_Module[%d]Index[%d].bmp"), m_pManager->m_strResultImageFileName, nSelModuleIndex, nIdx);
@@ -462,10 +462,10 @@
      }
      m_pDP2P->IDP2P_SetWsiManualMeasure(nSelModuleIndex, dXpos, dYpos);
      // move panel
      //#3514_LYW_CF AOI Review 자가진단 기능 개선_START
      /*< LYW 20210719 : #3517 ADD Start >*/
      //Sleep(2000);
      Sleep(1000);
      //#3514_LYW_CF AOI Review 자가진단 기능 개선_END
      /*< LYW 20210719 : #3517 ADD End >*/
      m_pDP2P->IDP2P_MotorGo(nSelModuleIndex, dXpos, dYpos);
      if (m_pDP2P->IDP2P_IsGantryMotionEnd(nSelModuleIndex) == FALSE)
@@ -477,10 +477,10 @@
      int stTime = GetTickCount();
      while (1)
      {
         //#3514_LYW_CF AOI Review 자가진단 기능 개선_START
         /*< LYW 20210719 : #3517 ADD Start >*/
         //if (10000 <= GetTickCount() - stTime)
         if (1000 <= GetTickCount() - stTime)
         //#3514_LYW_CF AOI Review 자가진단 기능 개선_END
         if (11000 <= GetTickCount() - stTime)
         /*< LYW 20210719 : #3517 ADD End >*/
         {
            break;
         }
@@ -545,14 +545,14 @@
   CDiagnosisInfo * pSettingInfo = m_pManager->GetDiagnosisInfo();
   if (pSettingInfo == NULL) return 0;
   //#3514_LYW_CF AOI Review 자가진단 기능 개선_START
   /*< LYW 20210719 : #3517 ADD Start >*/
   if (pSettingInfo->GetFlastnessSkipMode() == TRUE) {
      strMessage.Format(_T("[CDiagnosisProcessor] FlastnessSkipMode!"));
      m_pDP2P->IDP2P_DisplayMessage(0, strMessage);
      return 0;
   }
   //#3514_LYW_CF AOI Review 자가진단 기능 개선_END
   /*< LYW 20210719 : #3517 ADD End >*/
   int nSelModuleIndex = m_pDP2P->IDP2P_GetSelectedModuleIndex();
   int nFlatnessMode = pSettingInfo->GetFlatnessMode();
@@ -593,41 +593,41 @@
      {
         // AF Home
         m_pDP2P->IDP2P_AFMHomePosition(0);
         //#3514_LYW_CF AOI Review 자가진단 기능 개선_START
         /*< LYW 20210719 : #3517 ADD Start >*/
         //Sleep(5000);
         Sleep(1000);
         //#3514_LYW_CF AOI Review 자가진단 기능 개선_END
         /*< LYW 20210719 : #3517 ADD End >*/
         m_pDP2P->IDP2P_SetAFMTracking(0, TRUE);
         Sleep(500);
      }
      if (nIdx == 0)
      {
         pResultPoint[nIdx].dPosX = 657.425
            ;
         pResultPoint[nIdx].dPosY = 540.14
            ;
      }
      else if (nIdx == 1)
      {
         pResultPoint[nIdx].dPosX = 657.425
            ;
         pResultPoint[nIdx].dPosY = 2278.636
            ;
      }
      else if (nIdx == 2)
      {
         pResultPoint[nIdx].dPosX = 2096.944
            ;
         pResultPoint[nIdx].dPosY = 540.141
            ;
      }
      else if (nIdx == 3)
      {
         pResultPoint[nIdx].dPosX = 2096.944
            ;
         pResultPoint[nIdx].dPosY = 2278.636;
      }
//       if (nIdx == 0)
//       {
//          pResultPoint[nIdx].dPosX = 657.425
//             ;
//          pResultPoint[nIdx].dPosY = 540.14
//             ;
//       }
//       else if (nIdx == 1)
//       {
//          pResultPoint[nIdx].dPosX = 657.425
//             ;
//          pResultPoint[nIdx].dPosY = 2278.636
//             ;
//       }
//       else if (nIdx == 2)
//       {
//          pResultPoint[nIdx].dPosX = 2096.944
//             ;
//          pResultPoint[nIdx].dPosY = 540.141
//             ;
//       }
//       else if (nIdx == 3)
//       {
//          pResultPoint[nIdx].dPosX = 2096.944
//             ;
//          pResultPoint[nIdx].dPosY = 2278.636;
//       }
      //1. 모터를 이동
@@ -735,7 +735,7 @@
   return TRUE;
}
int CDiagnosisProcessor::ProcessDiagnosisJudge()
int CDiagnosisProcessor::ProcessDiagnosisJudge(int nMode)
{
   for (int i = 0; i < 2; i++)
   {
@@ -760,22 +760,28 @@
      }
      CString strMessage = _T("");
      double dDate = (90 - pProcessResult->GetGantryDegree());
      if (abs(dDate) >= abs(pSettingInfo->GetJudgeData_Degree())) // 0412 kyh 직각도에서 나온 Dgree 값이 설정한 Judge 값보다 크거나 같을경우
      if (nMode == DiagnosisMode_All || nMode == DiagnosisMode_Review || nMode == DiagnosisMode_Squareness)
      {
         double dDate = (90 - pProcessResult->GetGantryDegree());
         if (abs(dDate) >= abs(pSettingInfo->GetJudgeData_Degree())) // 0412 kyh 직각도에서 나온 Dgree 값이 설정한 Judge 값보다 크거나 같을경우
         {
         m_pDP2P->IDP2P_DiagnosisSendJudgeAlarm(); // 알람 발생
         strMessage.Format(_T("[Judge Data] [Gantry %d]Diagnosis Error ! GantryDegree[%lf] Judge[%lf]"), i, dDate, pSettingInfo->GetJudgeData_Degree());
         m_pDP2P->IDP2P_DisplayMessage(0, strMessage);
            m_pDP2P->IDP2P_DiagnosisSendJudgeAlarm(); // 알람 발생
            strMessage.Format(_T("[Judge Data] [Gantry %d]Diagnosis Error ! GantryDegree[%lf] Judge[%lf]"), i, dDate, pSettingInfo->GetJudgeData_Degree());
            m_pDP2P->IDP2P_DisplayMessage(0, strMessage);
         }
      }
      if (pProcessWSIResult->getWSI_RTB() >= pSettingInfo->GetJudgeData_3Sigma() || pProcessWSIResult->getWSI_RTB() <= 0) // 0412 kyh WSI 표준편차 비교
      if (nMode == DiagnosisMode_All || nMode == DiagnosisMode_Wsi)
      {
         m_pDP2P->IDP2P_DiagnosisSendJudgeAlarm(); // 알람 발생
         strMessage.Format(_T("[Judge Data] [WSI %d]Diagnosis Error ! WSI RTB[%lf] Judge[%lf]"), i, pProcessWSIResult->getWSI_RTB(), pSettingInfo->GetJudgeData_3Sigma());
         m_pDP2P->IDP2P_DisplayMessage(0, strMessage);
         if (pProcessWSIResult->getWSI_RTB() >= pSettingInfo->GetJudgeData_3Sigma() || pProcessWSIResult->getWSI_RTB() <= 0) // 0412 kyh WSI 표준편차 비교
         {
            m_pDP2P->IDP2P_DiagnosisSendJudgeAlarm(); // 알람 발생
            strMessage.Format(_T("[Judge Data] [WSI %d]Diagnosis Error ! WSI RTB[%lf] Judge[%lf]"), i, pProcessWSIResult->getWSI_RTB(), pSettingInfo->GetJudgeData_3Sigma());
            m_pDP2P->IDP2P_DisplayMessage(0, strMessage);
         }
      }
   }
   //#3407 KYH 자가진단 Judge 판정 및 알람 발생 기능 ADD END
@@ -882,8 +888,21 @@
      for (int nIdx = 0; nIdx < nPanelCount; nIdx++)
      {
         const SPositionData* pSettingPos = pSettingResult->GetPositionData_Squareness(nIdx);
         const SPositionData* pDataPos = pProcessResult->GetPositionData_Squareness(nIdx);
         //LYW 210811
         const SPositionData* pSettingPos;
         const SPositionData* pDataPos;
         if (nSelModuleIndex == 1)
         {
            pSettingPos = pSettingResult->GetPositionData_Squareness(nIdx);
            pDataPos = pProcessResult->GetPositionData_Squareness(nIdx + 3);
         }
         else
         {
            pSettingPos = pSettingResult->GetPositionData_Squareness(nIdx);
            pDataPos = pProcessResult->GetPositionData_Squareness(nIdx);
         }
         //LYW 210811
         if (pSettingPos == NULL || pDataPos == NULL) continue;
         dMotorPosX[nIdx] = pSettingPos->dPosX;