SDC C-Project CF Review 프로그램
LYW
2022-04-28 ea996431950e6ecff451bd40d1228f51d077475c
ReviewSystem/ReviewSystem/ReviewInterface.cpp
@@ -118,6 +118,8 @@
   m_nFDCFTPUploaderSWVersion = 20220101;
   m_nFDCSyncSWVersion = 20220101;
   m_nFDCReviewSWVersion = 20220101;
   m_nFDCWSISWVersion00 = 20220101;
   m_nFDCWSISWVersion01 = 20220101;
   /*< LYW 20220415 - #4086 ADD End >*/
   m_ProcessTimer.End();                  // process timer
@@ -160,6 +162,8 @@
{   
   if (m_pDoc==NULL) return FALSE;
   Start3rdPartyProgram();
   CreateDirectory(_REVIEW_SERVER_BASE_PATH_, NULL);
   CreateDirectory(_REVIEW_SERVER_LOG_PATH_, NULL);
   CreateDirectory(_REVIEW_SERVER_CONFIG_PATH_, NULL);
@@ -170,6 +174,7 @@
   //ISP2P_CopyFolder(_REVIEW_SERVER_CONFIG_PATH_, _REVIEW_SERVER_SYSTEM_SETTING_BACKUP_PATH_CPJT);
   //ISP2P_CopyFolder(_REVIEW_RECIPE_PATH_, _REVIEW_RECIPE_BACKUP_PATH_CPJT);
   //LYW_#3344_CF AOI Review Config File 백업 기능 개선 ADD END
   SetReviewProgramVersion();
   // init review data
   if (m_pDoc->InitReviewData()==FALSE) 
@@ -196,7 +201,7 @@
   }
   /*< LYW 20220415 - #4086 ADD Start >*/
   _beginthread(threadSetProgramVersion, NULL, this);
   _beginthread(threadSet3rdPartyProgramVersion, NULL, this);
   /*< LYW 20220415 - #4086 ADD End >*/
   // system type log : SW Version 추가
@@ -385,6 +390,8 @@
   DisconnectReviewCamera();
   DeinitReviewCamera();
   m_ProcessTimer.End();
   Terminate3rdPartyProgram();
   
   if (m_pView)
   {
@@ -489,8 +496,6 @@
   DeinitSharedImage();
   g_pLog->DisplayMessage(_T("Deinit Shared Image"));
   DeinitTotalPitchMeasure();
   g_pLog->DisplayMessage(_T("Deinit TotalPitch Measure"));
@@ -577,7 +582,7 @@
}
/*< LYW 20220415 - #4086 ADD Start >*/
void CReviewInterface::threadSetProgramVersion(void* pArg)
void CReviewInterface::threadSet3rdPartyProgramVersion(void* pArg)
{
   CReviewInterface* pThis = (CReviewInterface*)pArg;
   //LYW0412
@@ -589,27 +594,6 @@
   HWND hWnd;
   HANDLE hHandle;
   CString strTemp;
   //Review S/W Version Start
   ::GetModuleFileName( AfxGetInstanceHandle(), currentPath, MAX_PATH);
   bReturn = finder.FindFile(currentPath);
   while(bReturn)
   {
      bReturn = finder.FindNextFile();
      if(finder.IsDots()) continue;
      if(finder.IsDirectory()) continue;
      finder.GetLastWriteTime(timeLastWrite);
      pThis->m_strProgramVersion.Format(_T("Build[ %04d.%02d.%02d %02d:%02d ]"),
         timeLastWrite.GetYear(), timeLastWrite.GetMonth(), timeLastWrite.GetDay(), timeLastWrite.GetHour(), timeLastWrite.GetMinute());
      strTemp.Format(_T("%04d%02d%02d"), timeLastWrite.GetYear(), timeLastWrite.GetMonth(), timeLastWrite.GetDay());
      pThis->m_nFDCReviewSWVersion = atoi(strTemp);
      g_pLog->DisplayMessage(_T("FDCReviewSWVersion = %d "), pThis->m_nFDCReviewSWVersion);
   }
   //Review S/W Version Start
   while ((bRetFTPUploader&bRetGRM&bRetSync) != TRUE) 
   {
@@ -643,6 +627,8 @@
      }
      //FTPUploader S/W Version End
      bReturn = FALSE;
      //Dit Glass Raw Messenger S/W Version Start
      if (bRetGRM == FALSE)
      {
@@ -670,6 +656,8 @@
         bRetGRM = TRUE;
      }
      //Dit Glass Raw Messenger S/W Version End
      bReturn = FALSE;
      //Dit Shared Memory Sync Client S/W Version Start
      if (bRetSync == FALSE)
@@ -702,6 +690,86 @@
   finder.Close();
}
void CReviewInterface::SetReviewProgramVersion()
{
   //LYW0412
   BOOL bReturn;
   CFileFind finder;
   CTime timeLastWrite;
   TCHAR currentPath[MAX_PATH];
   CString strTemp;
   //Review S/W Version Start
   ::GetModuleFileName(AfxGetInstanceHandle(), currentPath, MAX_PATH);
   bReturn = finder.FindFile(currentPath);
   while (bReturn)
   {
      bReturn = finder.FindNextFile();
      if (finder.IsDots()) continue;
      if (finder.IsDirectory()) continue;
      finder.GetLastWriteTime(timeLastWrite);
      m_strProgramVersion.Format(_T("Build[ %04d.%02d.%02d %02d:%02d ]"),
         timeLastWrite.GetYear(), timeLastWrite.GetMonth(), timeLastWrite.GetDay(), timeLastWrite.GetHour(), timeLastWrite.GetMinute());
      strTemp.Format(_T("%04d%02d%02d"), timeLastWrite.GetYear(), timeLastWrite.GetMonth(), timeLastWrite.GetDay());
      m_nFDCReviewSWVersion = atoi(strTemp);
      g_pLog->DisplayMessage(_T("FDCReviewSWVersion = %d "), m_nFDCReviewSWVersion);
   }
   //Review S/W Version End
}
/*< LYW 20220426 - #4086 ADD Start >*/
void CReviewInterface::Start3rdPartyProgram()
{
//    if(StartWindowIDProgram(_T("FTPUploader"), _T("D:\\DIT_3rdParty\\FTPUpload\\FTPUploader.exe")))
//       g_pLog->DisplayMessage(_T("FDCFTPUploader Start Success"));
//    else g_pLog->DisplayMessage(_T("FDCFTPUploader Start Fail"));
   if (StartWindowIDProgram(_T("Dit Glass Raw Messenger"), _T("D:\\DIT_3rdParty\\GlassRawMessenger\\DitGlassRawMessenger_x64.exe")))
      g_pLog->DisplayMessage(_T("DitGlassRawMessenger Start Success"));
   else g_pLog->DisplayMessage(_T("DitGlassRawMessenger Start Fail"));
}
int CReviewInterface::StartWindowIDProgram(CString WindowID, CString ProgramPath)
{
   HWND hWnd = ::FindWindow(NULL, WindowID);
   if (hWnd == NULL)
   {
      if(ShellExecute(hWnd, NULL, ProgramPath, NULL, NULL, SW_SHOWMINIMIZED))
         return TRUE;
      else return FALSE;
   }
   return TRUE;
}
void CReviewInterface::Terminate3rdPartyProgram()
{
   /*TerminateWindowIDProgram(_T("FTPUploader"));*/
   TerminateWindowIDProgram(_T("Dit Glass Raw Messenger"));
   TerminateWindowIDProgram(_T("gnuplot"));
   KillProcess("wgnuplot.exe");
}
void CReviewInterface::TerminateWindowIDProgram(CString WindowID)
{
   HWND hWnd = ::FindWindow(NULL, WindowID);
   if (hWnd != NULL)
   {
      DWORD ProcessId;
      GetWindowThreadProcessId(hWnd, &ProcessId);
      HANDLE hProcess = OpenProcess(MAXIMUM_ALLOWED, FALSE, ProcessId);
      if (hProcess != NULL)
      {
         TerminateProcess(hProcess, 0);
      }
   }
}
/*< LYW 20220426 - #4086 ADD End >*/
/*< LYW 20220415 - #4086 ADD End >*/
void CReviewInterface::CreateSystemDirectory()
@@ -2874,6 +2942,21 @@
   }
   return -1;
}
void CReviewInterface::IWC2P_SetWSIVersion(int nModuleIndex, int nVersion)
{
   switch (nModuleIndex)
   {
   case 0:
      m_nFDCWSISWVersion00 = nVersion;
      break;
   case 1:
      m_nFDCWSISWVersion01 = nVersion;
      break;
   default:
      break;
   }
}
void CReviewInterface::IWC2P_SetConnectedStatus(int nModuleIndex, int nConnectStatus)
@@ -8408,26 +8491,42 @@
   m_nReview01ImageContrast = n_Value;
}
BOOL CReviewInterface::ISP2P_GetReviewSWVersion()
int CReviewInterface::ISP2P_GetReviewSWVersion()
{
   return m_nFDCReviewSWVersion;
}
BOOL CReviewInterface::ISP2P_GetSyncSWVersion()
int CReviewInterface::ISP2P_GetSyncSWVersion()
{
   return m_nFDCSyncSWVersion;
}
BOOL CReviewInterface::ISP2P_GetGRMSWVersion()
int CReviewInterface::ISP2P_GetGRMSWVersion()
{
   return m_nFDCGRMSWVersion;
}
BOOL CReviewInterface::ISP2P_GetFTPUploaderSWVersion()
int CReviewInterface::ISP2P_GetFTPUploaderSWVersion()
{
   return m_nFDCFTPUploaderSWVersion;
}
int CReviewInterface::ISP2P_GetWSISWVersion(int nModuleIndex)
{
   switch (nModuleIndex)
   {
   case 0:
      return m_nFDCWSISWVersion00;
      break;
   case 1:
      return m_nFDCWSISWVersion01;
      break;
   default:
      return m_nFDCWSISWVersion00;
      break;
   }
}
SDefectFilter* CReviewInterface::ISP2P_GetDefectFilter()
{
   if (m_pDoc==NULL) return NULL;