From 8ede40e3f7cfe1772ef7db2b1d74e905639cf343 Mon Sep 17 00:00:00 2001
From: LYW <leeyeanwoo@diteam.co.kr>
Date: 금, 15 4월 2022 16:40:43 +0900
Subject: [PATCH] Ongoing90 #4086 CF AOI Review FDC SW Version 추가 요청

---
 ReviewSystem/ReviewSystem/ReviewInterface.cpp |  156 ++++++++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 144 insertions(+), 12 deletions(-)

diff --git a/ReviewSystem/ReviewSystem/ReviewInterface.cpp b/ReviewSystem/ReviewSystem/ReviewInterface.cpp
index 54bac9e..9f3371b 100644
--- a/ReviewSystem/ReviewSystem/ReviewInterface.cpp
+++ b/ReviewSystem/ReviewSystem/ReviewInterface.cpp
@@ -67,6 +67,8 @@
 #include "akAOISharedSystem.h"
 #include "DlgModuleInfo.h"
 
+#include <Psapi.h>
+
 using namespace CHReviewResult;
 using namespace CHImageControls;
 
@@ -111,6 +113,12 @@
 
 	// single variable
 	m_strProgramVersion			= _T("");		// program version
+	/*< LYW 20220415 - #4086 ADD Start >*/
+	m_nFDCGRMSWVersion = 20220101;
+	m_nFDCFTPUploaderSWVersion = 20220101;
+	m_nFDCSyncSWVersion = 20220101;
+	m_nFDCReviewSWVersion = 20220101;
+	/*< LYW 20220415 - #4086 ADD End >*/
 	m_ProcessTimer.End();						// process timer
 
 	// multi variable	
@@ -162,7 +170,6 @@
 	//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
-	SetProgramVersion();
 
 	// init review data
 	if (m_pDoc->InitReviewData()==FALSE) 
@@ -187,6 +194,10 @@
 	{
 		m_pView->CreateDialogs(pSystemInfo->m_nLineType, pSystemInfo->m_nMachineType, pSystemInfo->m_bUseVisionAlign);
 	}
+
+	/*< LYW 20220415 - #4086 ADD Start >*/
+	_beginthread(threadSetProgramVersion, NULL, this);
+	/*< LYW 20220415 - #4086 ADD End >*/
 
 	// system type log : SW Version 異붽�
 	g_pLog->DisplayMessage(_T("Starting ReviewSystem Program! (%s)"), m_strProgramVersion);
@@ -370,22 +381,22 @@
 {
 	TRACE(_T("[A2E]DeinitReviewInterface �떆�옉\n"));
 
+	m_ProcessTimer.Start();
+	DisconnectReviewCamera();
+	DeinitReviewCamera();
+	m_ProcessTimer.End();
+	
 	if (m_pView)
 	{
 		m_pView->DeleteDialogs();
 	}
+	g_pLog->DisplayMessage(_T("ReviewCamera Deinit Time : %f ms"), m_ProcessTimer.GetDurationMilliSecond());
 
 	g_pLog->DisplayMessage(_T("Program exit by User!"));
 
 	ClearAllObserverVector();
 	g_pLog->DisplayMessage(_T("Clear all Observer Vectors"));
 	::Sleep(400);
-
-	m_ProcessTimer.Start();
-	DisconnectReviewCamera();
-	DeinitReviewCamera();
-	m_ProcessTimer.End();
-	g_pLog->DisplayMessage(_T("ReviewCamera Deinit Time : %f ms"), m_ProcessTimer.GetDurationMilliSecond());
 
 	m_ProcessTimer.Start();
 	DeinitAlignCamera();
@@ -565,14 +576,21 @@
 	AFM_SetAFMZoomLevel(0, 0);
 }
 
-
-void CReviewInterface::SetProgramVersion()
+/*< LYW 20220415 - #4086 ADD Start >*/
+void CReviewInterface::threadSetProgramVersion(void* pArg)
 {
-	BOOL bReturn;
+	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;
 
+	//Review S/W Version Start
 	::GetModuleFileName( AfxGetInstanceHandle(), currentPath, MAX_PATH);
 
 	bReturn = finder.FindFile(currentPath);
@@ -583,14 +601,108 @@
 
 		if(finder.IsDots()) continue;
 		if(finder.IsDirectory()) continue;
-
+		
 		finder.GetLastWriteTime(timeLastWrite);
-		m_strProgramVersion.Format(_T("Build[ %04d.%02d.%02d %02d:%02d ]"), 
+		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) 
+	{
+		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
+
+		//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
+
+		//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();
 }
+/*< LYW 20220415 - #4086 ADD End >*/
 
 void CReviewInterface::CreateSystemDirectory()
 {
@@ -8296,6 +8408,26 @@
 	m_nReview01ImageContrast = n_Value;
 }
 
+BOOL CReviewInterface::ISP2P_GetReviewSWVersion()
+{
+	return m_nFDCReviewSWVersion;
+}
+
+BOOL CReviewInterface::ISP2P_GetSyncSWVersion()
+{
+	return m_nFDCSyncSWVersion;
+}
+
+BOOL CReviewInterface::ISP2P_GetGRMSWVersion()
+{
+	return m_nFDCGRMSWVersion;
+}
+
+BOOL CReviewInterface::ISP2P_GetFTPUploaderSWVersion()
+{
+	return m_nFDCFTPUploaderSWVersion;
+}
+
 SDefectFilter* CReviewInterface::ISP2P_GetDefectFilter()
 {
 	if (m_pDoc==NULL) return NULL;

--
Gitblit v1.9.3