From f1a543772246f59b8b52a8857270b38ee38f3588 Mon Sep 17 00:00:00 2001 From: LYW <leeyeanwoo@diteam.co.kr> Date: 화, 31 5월 2022 09:07:13 +0900 Subject: [PATCH] AOI RawMessenger 동기화 --- DitGlassRawMessenger/DitGlassRawMessenger/RawResultReader.cpp | 168 ++++++++++++++++++++++++++++++++++++++------------------ 1 files changed, 114 insertions(+), 54 deletions(-) diff --git a/DitGlassRawMessenger/DitGlassRawMessenger/RawResultReader.cpp b/DitGlassRawMessenger/DitGlassRawMessenger/RawResultReader.cpp index d5d79d1..e9bd828 100644 --- a/DitGlassRawMessenger/DitGlassRawMessenger/RawResultReader.cpp +++ b/DitGlassRawMessenger/DitGlassRawMessenger/RawResultReader.cpp @@ -59,11 +59,15 @@ strFileName.Format("%s\\%s", m_strLocalPath, pGlassID); + FILE* pf = fopen(strFileName.GetBuffer(0), "r"); if (pf == NULL) return FALSE; + /* <KMH 20220407 : #4053 ADD Start> */ + AKLOG("Function : Read File Path: %s" , strFileName); + /* <KMH 20220407 : #4053 ADD End> */ /*< KJG 20211208 : #3696 ADD Start >*/ CDitGlassRawClient GlassRawClient; GlassRawClient.ConnectServer(); @@ -368,7 +372,9 @@ akFileDB.getItem("RawMerge_Use", &m_bStackUse, 0); akFileDB.getItem("RawMerge_LocalPath", m_strLocalPath, "D:\\DIT_ResultData\\RawMerge"); - if (m_bStackUse && m_nThreadStackFileReadFlag == 0) + //< SWK 20220413 - #4053 MOD > +// if (/*m_bStackUse && */m_nThreadStackFileReadFlag == 0) + if (m_nThreadStackFileReadFlag == 0) { _beginthread(threadResultFileRead, NULL, this); } @@ -395,7 +401,8 @@ nReadFailCount = 0; AKLOG("RawMerge File Read Start : %s\\%s", pThis->m_strLocalPath, strGlassID); - Sleep(3000); + //< SWK 20220413 - #4053 DEL > +// Sleep(3000); while (pThis->m_nProcessState == RPS_StateFileRead && pThis->m_nThreadStackFileReadFlag == 1) { if ((nThreadCount++ % 20) != 0) //명령 수행을 빠르게 감지 위한 조치 @@ -411,15 +418,19 @@ } nReadFailCount++; - AKLOG("RawMerge File Read Try : %d", nReadFailCount); + //< SWK 20220413 - #4053 DEL > +// AKLOG("RawMerge File Read Try : %d", nReadFailCount); if (nReadFailCount > 10) { pThis->m_nProcessState = RPS_ResultReadFail; break; } + //< SWK 20220413 - #4053 ADD > + AKLOG("RawMerge File Read Try : %d", nReadFailCount); - Sleep(50); + //< SWK 20220413 - #4053 DEL > +// Sleep(50); } if (pThis->m_nProcessState != RPS_ResultReadOK) { @@ -433,57 +444,90 @@ pThis->m_nThreadStackFileReadFlag = 0; } /* <LJC 20211122 : #3820 ADD Start> */ -void CRawResultReader::ProcessResultFileRead(void * pArg) +/*< SWK 20220413 - #4053 MOD Start >*/ +//void CRawResultReader::ProcessResultFileRead(void * pArg) +void CRawResultReader::ProcessResultFileRead() +/*< SWK 20220413 - #4053 MOD End >*/ { - CRawResultReader* pThis = (CRawResultReader*)pArg; - - pThis->m_nThreadStackFileReadFlag = 1; + /*< SWK 20220413 - #4053 MOD Start >*/ +// CRawResultReader* pThis = (CRawResultReader*)pArg; +// +// pThis->m_nThreadStackFileReadFlag = 1; +// int nReadFailCount = 0; +// int nThreadCount = 0; +// CString strGlassID; +// +// while (pThis->m_nThreadStackFileReadFlag == 1) +// { +// if (pThis->m_nProcessState == RPS_CmdFileRead) //스택파일 읽기 수행 [김태현 2019/1/12] +// { +// strGlassID = pThis->m_strGlassID; +// +// pThis->m_nProcessState = RPS_StateFileRead; +// nThreadCount = 0; +// nReadFailCount = 0; +// AKLOG("RawMerge File Read Start : %s\\%s", pThis->m_strLocalPath, strGlassID); +// Sleep(3000); +// while (pThis->m_nProcessState == RPS_StateFileRead && pThis->m_nThreadStackFileReadFlag == 1) +// { +// if (pThis->openFile(strGlassID.GetBuffer(0)) == TRUE) +// { +// pThis->m_nProcessState = RPS_ResultReadOK; +// AKLOG("RawMerge File Read Complete "); +// break; +// } +// nReadFailCount++; +// AKLOG("RawMerge File Read Try : %d", nReadFailCount); +// if (nReadFailCount > 10) +// { +// pThis->m_nProcessState = RPS_ResultReadFail; +// break; +// } +// Sleep(50); +// } +// if (pThis->m_nProcessState != RPS_ResultReadOK) +// { +// pThis->m_nProcessState = RPS_ResultReadFail; +// } +// } +// if (nReadFailCount) +// Sleep(500); +// } +// pThis->m_nThreadStackFileReadFlag = 0; + m_nProcessState = RPS_StateFileRead; int nReadFailCount = 0; int nThreadCount = 0; - CString strGlassID; - - while (pThis->m_nThreadStackFileReadFlag == 1) + AKLOG("RawMerge File Read Start : %s\\%s", m_strLocalPath, m_strGlassID); + while (m_nProcessState == RPS_StateFileRead && m_nThreadStackFileReadFlag == 1) { - if (pThis->m_nProcessState == RPS_CmdFileRead) //스택파일 읽기 수행 [김태현 2019/1/12] + if (openFile(m_strGlassID.GetBuffer(0)) == TRUE) { - strGlassID = pThis->m_strGlassID; - - pThis->m_nProcessState = RPS_StateFileRead; - nThreadCount = 0; - nReadFailCount = 0; - - AKLOG("RawMerge File Read Start : %s\\%s", pThis->m_strLocalPath, strGlassID); - Sleep(3000); - while (pThis->m_nProcessState == RPS_StateFileRead && pThis->m_nThreadStackFileReadFlag == 1) - { - if (pThis->openFile(strGlassID.GetBuffer(0)) == TRUE) - { - pThis->m_nProcessState = RPS_ResultReadOK; - AKLOG("RawMerge File Read Complete "); - break; - } - nReadFailCount++; - AKLOG("RawMerge File Read Try : %d", nReadFailCount); - if (nReadFailCount > 10) - { - pThis->m_nProcessState = RPS_ResultReadFail; - break; - } - Sleep(50); - } - if (pThis->m_nProcessState != RPS_ResultReadOK) - { - pThis->m_nProcessState = RPS_ResultReadFail; - } + m_nProcessState = RPS_ResultReadOK; + AKLOG("RawMerge File Read Complete "); + break; } - if (nReadFailCount) - Sleep(500); + nReadFailCount++; + if (nReadFailCount > 10) + { + m_nProcessState = RPS_ResultReadFail; + break; + } + AKLOG("RawMerge File Read Try : %d", nReadFailCount); } - pThis->m_nThreadStackFileReadFlag = 0; + if (m_nProcessState != RPS_ResultReadOK) + { + m_nProcessState = RPS_ResultReadFail; + } + /*< SWK 20220413 - #4053 MOD End >*/ } /* <LJC 20211122 : #3820 ADD End> */ BOOL CRawResultReader::RawMergeFileReadStart(char* pGlassID) { + /*< SWK 20220413 - #4053 ADD Start >*/ + m_strGlassID = pGlassID; + m_nProcessState = RPS_CmdFileRead; + /*< SWK 20220413 - #4053 ADD End >*/ + if (m_nThreadStackFileReadFlag == 0) { _beginthread(threadResultFileRead, NULL, this); @@ -495,27 +539,43 @@ while (m_nProcessState == RPS_CmdFileStop) Sleep(0); } - m_strGlassID = pGlassID; - m_nProcessState = RPS_CmdFileRead; + /*< SWK 20220413 - #4053 DEL Start > +// m_strGlassID = pGlassID; +// m_nProcessState = RPS_CmdFileRead; + < SWK 20220413 - #4053 DEL End >*/ return TRUE; } /* <LJC 20211122 : #3820 ADD Start> */ BOOL CRawResultReader::ProcessRawMergeFileReadStart(char * pGlassID) { - if (m_nThreadStackFileReadFlag == 0) { - ProcessResultFileRead(this); + //< SWK 20220413 - #4053 MOD > +// ProcessResultFileRead(this); + ProcessResultFileRead(); } - if (m_nProcessState == RPS_StateFileRead) + /*< SWK 20220413 - #4053 MOD Start >*/ +// if (m_nProcessState == RPS_StateFileRead) +// { +// m_nProcessState = RPS_CmdFileStop; +// while (m_nProcessState == RPS_CmdFileStop) Sleep(0); +// } +// +// m_strGlassID = pGlassID; +// m_nProcessState = RPS_CmdFileRead; + else { - m_nProcessState = RPS_CmdFileStop; - while (m_nProcessState == RPS_CmdFileStop) Sleep(0); - } + if (m_nProcessState == RPS_StateFileRead) + { + m_nProcessState = RPS_CmdFileStop; + while (!(m_nProcessState == RPS_ResultReadOK || m_nProcessState == RPS_ResultReadFail)) Sleep(0); + } - m_strGlassID = pGlassID; - m_nProcessState = RPS_CmdFileRead; + m_strGlassID = pGlassID; + m_nProcessState = RPS_CmdFileRead; + } + /*< SWK 20220413 - #4053 MOD End >*/ return TRUE; } -- Gitblit v1.9.3