From ea996431950e6ecff451bd40d1228f51d077475c Mon Sep 17 00:00:00 2001
From: LYW <leeyeanwoo@diteam.co.kr>
Date: 목, 28 4월 2022 09:22:18 +0900
Subject: [PATCH] Ongoing100 #4086 CF AOI Review FDC SW Version 추가 요청

---
 ReviewSystem/ReviewSystem/ReviewInterface.cpp |  157 ++++++++++++++++++++++++++++++++++++++++++---------
 1 files changed, 128 insertions(+), 29 deletions(-)

diff --git a/ReviewSystem/ReviewSystem/ReviewInterface.cpp b/ReviewSystem/ReviewSystem/ReviewInterface.cpp
index 9f3371b..73bc99f 100644
--- a/ReviewSystem/ReviewSystem/ReviewInterface.cpp
+++ b/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;

--
Gitblit v1.9.3