From f77e8008cac062596058fca2aeddda62b80bedbf Mon Sep 17 00:00:00 2001
From: kojingeun <diteam.co.kr>
Date: 금, 14 7월 2023 17:03:10 +0900
Subject: [PATCH] Merge branch 'feature/#4517_CF_AOI_Review_결과_파일_찾기_실패_개선' into develop

---
 ReviewSystem/ReviewSystem/ReviewProcessor_CPJT.cpp |   70 ++++++++++++++++++++++++++++++++++
 1 files changed, 69 insertions(+), 1 deletions(-)

diff --git a/ReviewSystem/ReviewSystem/ReviewProcessor_CPJT.cpp b/ReviewSystem/ReviewSystem/ReviewProcessor_CPJT.cpp
index 086a65f..7d8fa2b 100644
--- a/ReviewSystem/ReviewSystem/ReviewProcessor_CPJT.cpp
+++ b/ReviewSystem/ReviewSystem/ReviewProcessor_CPJT.cpp
@@ -12,10 +12,37 @@
 #include "CHReviewRecipe/RsRcpReviewInfo.h"
 #include "DitGlassRawClient.h"
 #include "LineChecker/LineChecker.h"
+
+#include <fstream> /* < KJG 20230630 - #4517 ADD >*/
 enum StackInfo { Stack_Unknown = 0, Stack_TD, Stack_SD, Stack_PD, Stack_SP, Stack_CD };
 using namespace CHImageControls;
 
-CReviewProcessor_CPJT::CReviewProcessor_CPJT(int nThreadCount) : CReviewProcessor(nThreadCount)
+const CString AOIRAWBIN_PATH = _T("\\\\126.100.100.1\\d\\DIT_ResultData\\RawBin");
+
+CString GetFormatMessageString(DWORD dwError) /* < KJG 20230630 - #4517 ADD >*/
+{
+	LPVOID lpMsgBuf;
+
+	FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER
+		| FORMAT_MESSAGE_FROM_SYSTEM
+		| FORMAT_MESSAGE_IGNORE_INSERTS
+		, NULL
+		, dwError
+		, MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT)
+		, (LPTSTR)&lpMsgBuf
+		, 0
+		, NULL
+	);
+
+	CString str;
+	str.Format(_T("%s"), lpMsgBuf);
+
+	LocalFree(lpMsgBuf);
+	return str;
+}
+
+CReviewProcessor_CPJT::CReviewProcessor_CPJT(int nThreadCount) 
+	: CReviewProcessor(nThreadCount)
 {
 	bProcessSuccess[CPJT_REVIEW_SUCCESS] = FALSE;
 	bProcessSuccess[CPJT_MEASURE_SUCCESS] = FALSE;
@@ -44,6 +71,13 @@
 	ErrorStringCode[17].Insert(17,_T("CircleCoefficientFail"));
 	ErrorStringCode[18].Insert(18,_T("ProcessSuccess"));
 	ErrorStringCode[19].Insert(19,_T("ProcessNone"));
+	
+	/* < KJG 20230630 - #4517 ADD Start >*/
+	CString strDummyFilePath;
+	strDummyFilePath.Format(_T("%s\\file_dummy"), AOIRAWBIN_PATH);
+	m_threadFileMonitor.SetParam(CDisplayMessage::GetSingletonPtr(), strDummyFilePath);
+	m_threadFileMonitor.StartThread();
+	/* < KJG 20230630 - #4517 ADD End >*/
 }
 
 CReviewProcessor_CPJT::~CReviewProcessor_CPJT(void)
@@ -3897,3 +3931,37 @@
 // 	return dFocus;
 }
 
+CTimerThreadFileMonitor::CTimerThreadFileMonitor(DWORD dwPeriod /*=10000*/, int nThreadCount /*=1*/)
+	: CTimerThreadPools(dwPeriod, nThreadCount), m_pLog(nullptr)
+{
+
+}
+
+void CTimerThreadFileMonitor::TimerThreadProcess(PVOID pParameter)
+{
+	if (m_strFilePath.IsEmpty())
+		return;
+
+	std::ofstream file(m_strFilePath);
+
+	if (file.is_open())
+	{
+
+	}
+	else
+	{
+		DWORD dwError = GetLastError();
+
+		if(m_pLog)
+			m_pLog->DisplayMessage(_T("[FileMonitor Thread] Abort! Error Code[%d][%s] File Path[%s]"), dwError, GetFormatMessageString(dwError), m_strFilePath);
+
+		AfxBeginThread([](LPVOID pParam)->UINT {
+			CTimerThreadFileMonitor *pMain = static_cast<CTimerThreadFileMonitor*>(pParam);
+			pMain->StopThread();
+
+			return 0;
+		}, this);
+	}
+
+	return;
+}
\ No newline at end of file

--
Gitblit v1.9.3