SDC C-Project CF Review 프로그램
LYW
2022-08-05 5f12658f37fed156e67b3318542c98f359341ffd
ReviewHistory/ReveiwHistory/ReveiwHistoryDlg.cpp
@@ -89,6 +89,7 @@
   HANDLE hThread = CreateThread(NULL, 0, RunThreadReviewHistory, this, 0, &dwThreadId);
   m_ThreadId = dwThreadId;
   /*< LYW 20211029 - #3684 ADD End >*/
   m_CheckInsViewCenterLine.SetCheck(FALSE);
   for (int i = 0; i < 105; i++)
   {
@@ -126,6 +127,7 @@
   DDX_Text(pDX, IDC_EDIT_OFFSET_Y, m_dEditOffsetY);
   DDX_Text(pDX, IDC_EDIT_DFFSET_GANTRY_IDX, m_strGantryIdx);
   DDX_Text(pDX, IDC_STATIC_LAST_SAVE_OFFSET_TIME, m_TextLastSaveOffsetTime);
   DDX_Control(pDX, IDC_CHECK_INS_VIEW_CENTER_LINE, m_CheckInsViewCenterLine);
}
BEGIN_MESSAGE_MAP(CReveiwHistoryDlg, CDialogEx)
@@ -155,6 +157,7 @@
   ON_WM_KEYDOWN()
   ON_BN_CLICKED(IDC_BUTTON_OFFSET_APPLY, &CReveiwHistoryDlg::OnBnClickedButtonOffsetApply)
   ON_BN_CLICKED(IDC_BUTTON_OFFSET_SAVE, &CReveiwHistoryDlg::OnBnClickedButtonOffsetSave)
   ON_BN_CLICKED(IDC_CHECK_INS_VIEW_CENTER_LINE, &CReveiwHistoryDlg::OnBnClickedCheckInsViewCenterLine)
END_MESSAGE_MAP()
// CReveiwHistoryDlg 메시지 처리기
@@ -228,13 +231,6 @@
   InitGridDefectLIst(&m_gridDefectInfo, IDC_STATIC_GRID_DEFECT);
   InitGridGlassLIst(&m_gridGlassInfo, IDC_STATIC_GRID_GLASS_INFO);
   /*< LYW 20211025 - #3684 ADD Start >*/
   CString strPath = _T("");
   InitDataInfo();
   strPath.Format(_T("%s%s"), REVIEW_OFFSET_CONFIGFILE_PATH, REVIEW_OFFSET_CONFIGFILE_NAME);
   LoadOffset(strPath);
   /*< LYW 20211025 - #3684 ADD End >*/
   OnViewReviewdefect();
   m_chkReviewDefect.SetCheck(TRUE);
@@ -260,6 +256,11 @@
   m_ctlProgress.SetRange(0, 100);
   m_ctlProgress.ShowWindow(FALSE);
   /*< LYW 20211025 - #3684 ADD Start >*/
   InitDataInfo();
   PostThreadMessage(m_ThreadId, UM_THREAD_LOADING_OFFSET, 0, 0);
   /*< LYW 20211025 - #3684 ADD End >*/
   return TRUE;  // 포커스를 컨트롤에 설정하지 않으면 TRUE를 반환합니다.
}
@@ -344,6 +345,10 @@
      {
         dc.SetStretchBltMode(COLORONCOLOR);
         m_AlignSecend.Draw(dc, m_Align_rect2);
      }
      if (m_CheckInsViewCenterLine.GetCheck() == TRUE)
      {
         DrawInsViewCenterLine(&dc);
      }
      CDialogEx::OnPaint();
   }
@@ -923,7 +928,11 @@
               //ImageShow(pDefectInfo->m_nDefectID);
               if (!m_bDefectAll)
               {
                  ImageShow(pDispInfo->item.row - 1);
                  /*< LYW 20211221 - #5000 ADD Start >*/
                  ImageShow(pDefectInfo->m_nDefectID);
                  /*< LYW 20211221 - #5000 ADD End >*/
                  //origin
                  //ImageShow(pDispInfo->item.row - 1);
               }
               else
               {
@@ -933,12 +942,15 @@
               //정렬 순서를 사용자가 원하는 순으로 하자
               if (!m_bDefectAll)
               {
                  m_sldImg.SetPos(pDispInfo->item.row - 1);
                  int nPos = m_sldImg.GetPos();
                  CString strPos;
                  strPos.Format(_T("%d"), nPos);
                  m_ctrCount.SetWindowText(strPos);
                  /*< LYW 20211221 - #5000 Delete Start >*/
//                   m_sldImg.SetPos(pDispInfo->item.row - 1);
//
//                   int nPos = m_sldImg.GetPos();
//                   CString strPos;
//                   strPos.Format(_T("%d"), nPos);
//                   m_ctrCount.SetWindowText(strPos);
                  /*< LYW 20211221 - #5000 Delete End >*/
               }
            }
         }
@@ -1227,7 +1239,11 @@
      {
         if (m_Formation.m_vecImage[i].m_nDefectID == nSelectDefect)
         {
            ImageShow(i);
            /*< LYW 20211221 - #5000 ADD Start >*/
            ImageShow(nSelectDefect);
            /*< LYW 20211221 - #5000 ADD End >*/
            //origin
            //ImageShow(i);
            break;
         }
      }
@@ -1813,8 +1829,10 @@
      SetScrollSetting();
   }
   /*< LYW 20211028 - #3684 ADD Start >*/
   HWND hWnd = GetSafeHwnd();
   PostThreadMessage(m_ThreadId, UM_THREAD_WARNING_OFFSET, 0, 0);
   if (m_LastSaveOffsetTime >= m_CurrentResultFileTime)
   {
      PostThreadMessage(m_ThreadId, UM_THREAD_WARNING_OFFSET, 0, 0);
   }
   /*< LYW 20211028 - #3684 ADD End >*/
}
@@ -1830,6 +1848,25 @@
   m_ConfigOption.m_nSelectRawType = 3;
}
void CReveiwHistoryDlg::DrawInsViewCenterLine(CPaintDC * pDC)
{
   if (m_picture_rect2.Width() == 0 || m_picture_rect2.Height() == 0) return;
   CRect rtDraw = m_picture_rect2;
   CPen pen, *pPen = NULL;
   pen.CreatePen(PS_DOT, 1, RGB(255, 0, 0));
   pDC->SelectObject(&pen);
   //pDC->SelectStockObject(WHITE_PEN);
   // center line
   pDC->MoveTo((rtDraw.Width() / 2) + rtDraw.left, 0 + rtDraw.top);
   pDC->LineTo((rtDraw.Width() / 2) + rtDraw.left, rtDraw.Height() + rtDraw.top);
   pDC->MoveTo(0 + rtDraw.left, (rtDraw.Height() / 2) + rtDraw.top);
   pDC->LineTo(rtDraw.Width() + rtDraw.left, (rtDraw.Height() / 2) + rtDraw.top);
}
void CReveiwHistoryDlg::OnBnClickedBtnFindBin()
@@ -2124,8 +2161,16 @@
      if (!m_bDefectAll)
      {
         nIndex = nDefectID;
         break;
         /*< LYW 20211221 - #5000 ADD Start >*/
         if (pImage->m_nDefectID == nDefectID)
         {
            nIndex = i;
            break;
         }
         /*< LYW 20211221 - #5000 ADD End >*/
         //Origin
//          nIndex = nDefectID;
//          break;
      }
      else
      {
@@ -2371,8 +2416,11 @@
      _akReviewList* pImageInfo = &m_Formation.m_vecImage[nPos];
      m_FormationMap.setSelectDefect(pImageInfo->m_nDefectID);
      //ImageShow(pImageInfo->m_nDefectID/*nPos*/);
      ImageShow(nPos);
      /*< LYW 20211221 - #5000 ADD Start >*/
      ImageShow(pImageInfo->m_nDefectID/*nPos*/);
      /*< LYW 20211221 - #5000 ADD End >*/
      //Origin
      //ImageShow(nPos);
      setDefectShow(pImageInfo->m_nDefectID, 1);
   }
}
@@ -2683,8 +2731,10 @@
   int center_y = (SrcImage.GetHeight() / 2); // 회전 중심점
   double seta = 3.14 / (180.0 / degree); // 라디안
   double CosSeta = cos(seta);
   double SinSeta = sin(seta);
   double CosSeta = -1;
   double SinSeta = 0;
//    double CosSeta = cos(seta);
//    double SinSeta = sin(seta);
   for (int y = 0; y < Height; y++)
   {
@@ -4029,6 +4079,7 @@
{
   // TODO: 여기에 컨트롤 알림 처리기 코드를 추가합니다.
   SaveOffset();
   SendMsg2ReviewSystem();
}
BOOL CReveiwHistoryDlg::LoadOffset(CString strFilePath)
@@ -4044,6 +4095,10 @@
   macroFile.GetItem(_T("CAMERA_COUNT"), m_nCameraCount, 0);
   macroFile.GetItem(_T("SCAN_COUNT"), m_nScanCount, 0);
   macroFile.GetItem(_T("XPOS_COUNT"), m_XposCount, 0);
   /*< LYW 20211111 - #3766 ADD Start >*/
   macroFile.GetItem(_T("WARN_STANDARD"), m_dWarnStandard, 0);
   macroFile.GetItem(_T("HARD_STANDARD"), m_dHardStandard, 0);
   /*< LYW 20211111 - #3766 ADD End >*/
   CString strItem = _T("");
   double dXoffset = 0;
   double dYoffset = 0;
@@ -4124,6 +4179,14 @@
   strItem.Format(_T("XPOS_COUNT"));
   macroFile.SetItem(strItem, m_XposCount);
   /*< LYW 20211111 - #3766 ADD Start >*/
   strItem.Format(_T("WARN_STANDARD"));
   macroFile.SetItem(strItem, m_dWarnStandard);
   strItem.Format(_T("HARD_STANDARD"));
   macroFile.SetItem(strItem, m_dHardStandard);
   /*< LYW 20211111 - #3766 ADD End >*/
   CString strData;
   double dData = 0;
@@ -4165,6 +4228,16 @@
   bReturn = macroFile.Write(strFilePath);
   /*< LYW 20220525 - #4158 ADD Start >*/
   CString strRTMSBackUpFilePath;
   strRTMSBackUpFilePath.Format(_T("%s\\%s"), _REVIEW_SERVER_SYSTEM_SETTING_BACKUP_PATH_CPJT, REVIEW_OFFSET_CONFIGFILE_NAME);
   if (bReturn)
   {
      CopyFile(REVIEW_OFFSET_CONFIGFILE_FULL_PATHNAME, strRTMSBackUpFilePath, FALSE);
   }
   /*< LYW 20220525 - #4158 ADD End >*/
   if (bReturn)
   {
      /*< LYW 20211028 - #3684 ADD Start >*/
@@ -4175,6 +4248,25 @@
   else AfxMessageBox(_T("OFFSET SAVE FAIL"), MB_OK | MB_ICONHAND);
   return bReturn;
}
BOOL CReveiwHistoryDlg::SendMsg2ReviewSystem()
{
   HWND hWnd = ::FindWindow(NULL, _T("ReviewSystem"));
   if (hWnd)
   {
      COPYDATASTRUCT cds;
      cds.dwData = COPYDATA_REVIEWHISTORYOR2REVIEWSYSTEM;
      cds.cbData = 0;
      cds.lpData = 0;
      ::SendMessage(hWnd, WM_COPYDATA, 0, (LPARAM)(LPVOID)&cds);
      return TRUE;
   }
   return FALSE;
}
BOOL CReveiwHistoryDlg::ApplyOffset(int nModuleidx, int nCamIndex, int ScanIndex, double dXOffsetValue, double dYOffsetValue)
@@ -4365,6 +4457,7 @@
DWORD RunThreadReviewHistory(LPVOID param)
{
   MSG msg;
   CString strPath = _T("");
   CReveiwHistoryDlg* pDlg = (CReveiwHistoryDlg*)param;
   while (GetMessage(&msg, NULL, 0, 0))
   {
@@ -4377,10 +4470,22 @@
         pDlg->PostMessage(UM_WARNING_OFFSET);
         break;
      case UM_THREAD_LOADING_OFFSET:
         strPath.Format(_T("%s%s"), REVIEW_OFFSET_CONFIGFILE_PATH, REVIEW_OFFSET_CONFIGFILE_NAME);
         pDlg->LoadOffset(strPath);
         break;
      default:
         break;
      }
   }
   return 0;
}
/*< LYW 20211029 - #3684 ADD End >*/
/*< LYW 20211029 - #3684 ADD End >*/
void CReveiwHistoryDlg::OnBnClickedCheckInsViewCenterLine()
{
   // TODO: 여기에 컨트롤 알림 처리기 코드를 추가합니다.
   Invalidate(TRUE);
}