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