SDC C-Project CF Review 프로그램
KEJ
2023-11-24 9020bfb6f86ff853d5d5b3cee882132a244232da
ReviewSystem/ReviewSystem/ReviewInterface.cpp
@@ -585,110 +585,176 @@
void CReviewInterface::threadSet3rdPartyProgramVersion(void* pArg)
{
   CReviewInterface* pThis = (CReviewInterface*)pArg;
   //LYW0412
   BOOL bReturn, bRetFTPUploader = FALSE, bRetGRM = FALSE, bRetSync = FALSE;
   CFileFind finder;
   CTime timeLastWrite;
   TCHAR currentPath[MAX_PATH];
   DWORD dwPid;
   HWND hWnd;
   HANDLE hHandle;
   CString strTemp;
   /*< SWK 20221222 - #4403 MOD Start >*/
//   //LYW0412
//   BOOL bReturn, bRetFTPUploader = FALSE, bRetGRM = FALSE, bRetSync = FALSE;
//    CFileFind finder;
//    CTime timeLastWrite;
//    TCHAR currentPath[MAX_PATH];
//    DWORD dwPid;
//    HWND hWnd;
//    HANDLE hHandle;
//    CString strTemp;
//
//    while ((bRetFTPUploader&bRetGRM&bRetSync) != TRUE)
//    {
//       bReturn = FALSE;
//
//       //FTPUploader S/W Version Start
//       if (bRetFTPUploader == FALSE)
//       {
//          dwPid = 0;
//          hWnd = ::FindWindow(NULL, _T("FTPUploader"));
//          GetWindowThreadProcessId(hWnd, &dwPid);
//          hHandle = OpenProcess(MAXIMUM_ALLOWED, FALSE, dwPid);
//          ZeroMemory(currentPath, MAX_PATH);
//          GetModuleFileNameEx(hHandle, NULL, currentPath, MAX_PATH);
//
//          bReturn = finder.FindFile(currentPath);
//       }
//
//       while (bReturn)
//       {
//          bReturn = finder.FindNextFile();
//
//          if (finder.IsDots()) continue;
//          if (finder.IsDirectory()) continue;
//
//          finder.GetLastWriteTime(timeLastWrite);
//          strTemp.Format(_T("%04d%02d%02d"), timeLastWrite.GetYear(), timeLastWrite.GetMonth(), timeLastWrite.GetDay());
//          pThis->m_nFDCFTPUploaderSWVersion = atoi(strTemp);
//          g_pLog->DisplayMessage(_T("FDCFTPUploaderSWVersion = %d "), pThis->m_nFDCFTPUploaderSWVersion);
//          bRetFTPUploader = TRUE;
//       }
//       //FTPUploader S/W Version End
//
//       bReturn = FALSE;
//
//       //Dit Glass Raw Messenger S/W Version Start
//       if (bRetGRM == FALSE)
//       {
//          dwPid = 0;
//          hWnd = ::FindWindow(NULL, _T("Dit Glass Raw Messenger"));
//          GetWindowThreadProcessId(hWnd, &dwPid);
//          hHandle = OpenProcess(MAXIMUM_ALLOWED, FALSE, dwPid);
//          ZeroMemory(currentPath, MAX_PATH);
//          GetModuleFileNameEx(hHandle, NULL, currentPath, MAX_PATH);
//
//          bReturn = finder.FindFile(currentPath);
//       }
//
//       while (bReturn)
//       {
//          bReturn = finder.FindNextFile();
//
//          if (finder.IsDots()) continue;
//          if (finder.IsDirectory()) continue;
//
//          finder.GetLastWriteTime(timeLastWrite);
//          strTemp.Format(_T("%04d%02d%02d"), timeLastWrite.GetYear(), timeLastWrite.GetMonth(), timeLastWrite.GetDay());
//          pThis->m_nFDCGRMSWVersion = atoi(strTemp);
//          g_pLog->DisplayMessage(_T("FDCGRMSWVersion = %d "), pThis->m_nFDCGRMSWVersion);
//          bRetGRM = TRUE;
//       }
//       //Dit Glass Raw Messenger S/W Version End
//
//       bReturn = FALSE;
//
//       //Dit Shared Memory Sync Client S/W Version Start
//       if (bRetSync == FALSE)
//       {
//          dwPid = 0;
//          hWnd = ::FindWindow(NULL, _T("Dit Shared Memory Sync Client"));
//          GetWindowThreadProcessId(hWnd, &dwPid);
//          hHandle = OpenProcess(MAXIMUM_ALLOWED, FALSE, dwPid);
//          ZeroMemory(currentPath, MAX_PATH);
//          GetModuleFileNameEx(hHandle, NULL, currentPath, MAX_PATH);
//
//          bReturn = finder.FindFile(currentPath);
//       }
//
//       while (bReturn)
//       {
//          bReturn = finder.FindNextFile();
//
//          if (finder.IsDots()) continue;
//          if (finder.IsDirectory()) continue;
//
//          finder.GetLastWriteTime(timeLastWrite);
//          strTemp.Format(_T("%04d%02d%02d"), timeLastWrite.GetYear(), timeLastWrite.GetMonth(), timeLastWrite.GetDay());
//          pThis->m_nFDCSyncSWVersion = atoi(strTemp);
//          g_pLog->DisplayMessage(_T("FDCSyncSWVersion = %d "), pThis->m_nFDCSyncSWVersion);
//          bRetSync = TRUE;
//       }
//       //Dit Shared Memory Sync Client S/W Version End
//    }
//
//   finder.Close();
   while ((bRetFTPUploader&bRetGRM&bRetSync) != TRUE)
   auto GetModuleFileLastTime = [](LPCTSTR strWindowTitle)->long {
      long nLastTime = 0;
      DWORD dwPid = 0;
      HWND hWnd = ::FindWindow(NULL, strWindowTitle);
      if (hWnd == INVALID_HANDLE_VALUE)
         return nLastTime;
      GetWindowThreadProcessId(hWnd, &dwPid);
      HANDLE hHandle = OpenProcess(MAXIMUM_ALLOWED, FALSE, dwPid);
      TCHAR currentPath[MAX_PATH];
      ZeroMemory(currentPath, MAX_PATH);
      GetModuleFileNameEx(hHandle, NULL, currentPath, MAX_PATH);
      CFileFind finder;
      if (finder.FindFile(currentPath))
      {
         finder.FindNextFile();
         if (finder.IsDirectory() || finder.IsDots())
            return nLastTime;
         CTime timeLastWrite;
         finder.GetLastWriteTime(timeLastWrite);
         nLastTime = atoi(timeLastWrite.Format(_T("%Y%m%d")));
      }
      return nLastTime;
   };
   BOOL bRetFTPUploader = FALSE, bRetGRM = FALSE, bRetSync = FALSE;
   while ((bRetFTPUploader&bRetGRM&bRetSync) != TRUE)
   {
      bReturn = FALSE;
      //FTPUploader S/W Version Start
      //FTPUploader S/W Version
      if (bRetFTPUploader == FALSE)
      {
         dwPid = 0;
         hWnd = ::FindWindow(NULL, _T("FTPUploader"));
         GetWindowThreadProcessId(hWnd, &dwPid);
         hHandle = OpenProcess(MAXIMUM_ALLOWED, FALSE, dwPid);
         ZeroMemory(currentPath, MAX_PATH);
         GetModuleFileNameEx(hHandle, NULL, currentPath, MAX_PATH);
         bReturn = finder.FindFile(currentPath);
         if (pThis->m_nFDCFTPUploaderSWVersion = GetModuleFileLastTime(_T("FTPUploader")))
         {
            g_pLog->DisplayMessage(_T("FDCFTPUploaderSWVersion = %d "), pThis->m_nFDCFTPUploaderSWVersion);
            bRetFTPUploader = TRUE;
         }
      }
      while (bReturn)
      {
         bReturn = finder.FindNextFile();
         if (finder.IsDots()) continue;
         if (finder.IsDirectory()) continue;
         finder.GetLastWriteTime(timeLastWrite);
         strTemp.Format(_T("%04d%02d%02d"), timeLastWrite.GetYear(), timeLastWrite.GetMonth(), timeLastWrite.GetDay());
         pThis->m_nFDCFTPUploaderSWVersion = atoi(strTemp);
         g_pLog->DisplayMessage(_T("FDCFTPUploaderSWVersion = %d "), pThis->m_nFDCFTPUploaderSWVersion);
         bRetFTPUploader = TRUE;
      }
      //FTPUploader S/W Version End
      bReturn = FALSE;
      //Dit Glass Raw Messenger S/W Version Start
      Sleep(1);
      //Dit Glass Raw Messenger S/W Version
      if (bRetGRM == FALSE)
      {
         dwPid = 0;
         hWnd = ::FindWindow(NULL, _T("Dit Glass Raw Messenger"));
         GetWindowThreadProcessId(hWnd, &dwPid);
         hHandle = OpenProcess(MAXIMUM_ALLOWED, FALSE, dwPid);
         ZeroMemory(currentPath, MAX_PATH);
         GetModuleFileNameEx(hHandle, NULL, currentPath, MAX_PATH);
         bReturn = finder.FindFile(currentPath);
         if (pThis->m_nFDCGRMSWVersion = GetModuleFileLastTime(_T("Dit Glass Raw Messenger")))
         {
            g_pLog->DisplayMessage(_T("FDCGRMSWVersion = %d "), pThis->m_nFDCGRMSWVersion);
            bRetGRM = TRUE;
         }
      }
      while (bReturn)
      {
         bReturn = finder.FindNextFile();
         if (finder.IsDots()) continue;
         if (finder.IsDirectory()) continue;
         finder.GetLastWriteTime(timeLastWrite);
         strTemp.Format(_T("%04d%02d%02d"), timeLastWrite.GetYear(), timeLastWrite.GetMonth(), timeLastWrite.GetDay());
         pThis->m_nFDCGRMSWVersion = atoi(strTemp);
         g_pLog->DisplayMessage(_T("FDCGRMSWVersion = %d "), pThis->m_nFDCGRMSWVersion);
         bRetGRM = TRUE;
      }
      //Dit Glass Raw Messenger S/W Version End
      bReturn = FALSE;
      Sleep(1);
      //Dit Shared Memory Sync Client S/W Version Start
      if (bRetSync == FALSE)
      {
         dwPid = 0;
         hWnd = ::FindWindow(NULL, _T("Dit Shared Memory Sync Client"));
         GetWindowThreadProcessId(hWnd, &dwPid);
         hHandle = OpenProcess(MAXIMUM_ALLOWED, FALSE, dwPid);
         ZeroMemory(currentPath, MAX_PATH);
         GetModuleFileNameEx(hHandle, NULL, currentPath, MAX_PATH);
         bReturn = finder.FindFile(currentPath);
         if (pThis->m_nFDCSyncSWVersion = GetModuleFileLastTime(_T("Dit Shared Memory Sync Client")))
         {
            g_pLog->DisplayMessage(_T("FDCSyncSWVersion = %d "), pThis->m_nFDCSyncSWVersion);
            bRetSync = TRUE;
         }
      }
      while (bReturn)
      {
         bReturn = finder.FindNextFile();
         if (finder.IsDots()) continue;
         if (finder.IsDirectory()) continue;
         finder.GetLastWriteTime(timeLastWrite);
         strTemp.Format(_T("%04d%02d%02d"), timeLastWrite.GetYear(), timeLastWrite.GetMonth(), timeLastWrite.GetDay());
         pThis->m_nFDCSyncSWVersion = atoi(strTemp);
         g_pLog->DisplayMessage(_T("FDCSyncSWVersion = %d "), pThis->m_nFDCSyncSWVersion);
         bRetSync = TRUE;
      }
      //Dit Shared Memory Sync Client S/W Version End
      Sleep(1);
   }
   finder.Close();
   /*< SWK 20221222 - #4403 MOD End >*/
}
void CReviewInterface::SetReviewProgramVersion()
@@ -3694,6 +3760,23 @@
   pReviewOffSetTool->GetOffSetInfo(nModule, nCam, nScan, dGlassXPos,dXpos, dYpos);
   return TRUE;
}
/* < KEJ 20230621 - #4528 ADD Start > */
BOOL CReviewInterface::IDMO2P_GetMotorPos(int nModule, double &dXpos, double &dYpos)
{
   dXpos = m_vecModuleStatus[nModule].GetMotorPosition()->dMotorPosX;
   dYpos = m_vecModuleStatus[nModule].GetMotorPosition()->dMotorPosY;
   return TRUE;
}
BOOL CReviewInterface::CalcMotorOffSetValue(int nModule, double &dXpos, double &dYpos)
{
   CDlgMotorOffSetTool* pMotorOffSetTool = m_pView->GetMotorOffSetToolHandle();
   pMotorOffSetTool->CalOffsetInfo(nModule, dXpos, dYpos);
   return TRUE;
}
/* < KEJ 20230621 - #4528 ADD End > */
BOOL CReviewInterface::IDRO2P_SetGlassMode(BOOL bMode, int nCamidx, int nScanidx, double nXpos, double nYpos)
{
@@ -8994,7 +9077,12 @@
{
   m_pView->ShowHWSettingMode();
}
/* < KEJ 20230621 - #4528 ADD Start > */
void CReviewInterface::IDL2P_OpenMotorOffSetTool()
{
   m_pView->ShowMotorOffSetTool();
}
/* < KEJ 20230621 - #4528 ADD  End > */
BOOL CReviewInterface::IDL2P_IsManualProcessMode()
{
   return IsManualProcessMode();