From 0c66940a8e2cf64c9890519901f433b3668216b6 Mon Sep 17 00:00:00 2001 From: KEJ <kimeungju@diteam.co.kr> Date: 수, 26 6월 2024 15:13:18 +0900 Subject: [PATCH] Ongoing80 #4942 CF AOI Review Bin File Loading 실패 개선 1. GlassRawMessenger 동기화 2. BIN파일 FindFile 제거(RawMessenger, Review 공통) 3. Unloading 시 BIN파일 제거 --- ReviewSystem/ReviewSystem/DitGlassRawClient.cpp | 63 +++++++++++++++++++------------ 1 files changed, 38 insertions(+), 25 deletions(-) diff --git a/ReviewSystem/ReviewSystem/DitGlassRawClient.cpp b/ReviewSystem/ReviewSystem/DitGlassRawClient.cpp index 98841f2..f1faed3 100644 --- a/ReviewSystem/ReviewSystem/DitGlassRawClient.cpp +++ b/ReviewSystem/ReviewSystem/DitGlassRawClient.cpp @@ -2,20 +2,15 @@ #include "DitGlassRawClient.h" CDitGlassRawClient::CDitGlassRawClient(void) - : m_mxCommandProcess(FALSE, MUTEX_RAWMESSENGER) +: m_mxCommandProcess(FALSE, MUTEX_RAWMESSENGER) { m_hMapBasicInfo = NULL; m_hMapGlassData = NULL; - m_pDitGlassClient =NULL; + m_pGlassRawInfo = NULL; m_pGlassRawData = NULL; m_nLastCommandIdx = -1; - - m_pGlassData = NULL; - m_pBlockData = NULL; - m_pCellData = NULL; - m_pDefectData = NULL; } CDitGlassRawClient::~CDitGlassRawClient(void) @@ -77,7 +72,7 @@ } BOOL CDitGlassRawClient::ConnectGlassRawData() -{ +{ SIZE_T nGlassRawSharedSize = m_pGlassRawInfo->m_nGlassRawDataSize; if(m_hMapGlassData == NULL) @@ -105,6 +100,9 @@ m_pCellData = (_grmCellData*)&m_pGlassRawData[m_pGlassRawInfo->m_nCellDataPoint]; m_pDefectData = (_grmDefectData*)&m_pGlassRawData[m_pGlassRawInfo->m_nDefectDataPoint]; m_pStackData = (_grmDefectData*)&m_pGlassRawData[m_pGlassRawInfo->m_nStackDataPoint]; + /*< KJG 20211024 - #3487 ADD Start >*/ + m_pRawMergeData = (_grmDefectData*)&m_pGlassRawData[m_pGlassRawInfo->m_nRawMergeDataPoint]; + /*< KJG 20211024 - #3487 ADD End >*/ return TRUE; } @@ -137,14 +135,14 @@ int nCmdId = (m_pGlassRawInfo->m_nCommandIdxWrite+1) % COMMAND_MAXCOUNT; - if(m_pGlassRawInfo->m_nCommandIdxRead == nCmdId)//占쏙옙占쏙옙 占쏙옙占쌕는곤옙占쏙옙 占쏙옙큘占쏙옙 占쏙옙占쌜곤옙 占싼뱄옙占쏙옙 占쏙옙占쌀다는곤옙!! [占쏙옙占쏙옙占쏙옙 2018/11/12] + if(m_pGlassRawInfo->m_nCommandIdxRead == nCmdId)//둘이 같다는것은 서큘러 버퍼가 한바퀴 돌았다는것!! [김태현 2018/11/12] { - m_pGlassRawInfo->m_nCommandIdxRead++;//占쏙옙占쏙옙 占쏙옙占쏙옙占쏙옙 占쏙옙占� 占싹놂옙占쏙옙 占쏙옙占쏙옙占싼댐옙. [占쏙옙占쏙옙占쏙옙 2018/11/12] + m_pGlassRawInfo->m_nCommandIdxRead++;//가장 오래된 명령 하나를 삭제한다. [김태현 2018/11/12] } m_pGlassRawInfo->m_nCommandBuffer[nCmdId].nCommand = (short)nCmd; m_pGlassRawInfo->m_nCommandBuffer[nCmdId].strParam; - m_pGlassRawInfo->m_nCommandBuffer[nCmdId].nResult = -1; //-1占쏙옙占쏙옙占쏙옙, 0占쏙옙占쏙옙, 1占쏙옙占쏙옙 [占쏙옙占쏙옙占쏙옙 2018/11/13] + m_pGlassRawInfo->m_nCommandBuffer[nCmdId].nResult = -1; //-1수행전, 0실패, 1성공 [김태현 2018/11/13] m_nLastCommandIdx = m_pGlassRawInfo->m_nCommandIdxWrite = nCmdId; @@ -153,6 +151,30 @@ return TRUE; } + +/* < KJG 20240620 - #4942 ADD Start >*/ +void CDitGlassRawClient::ResetClientResultStep() +{ + if (isConnect() == FALSE) return; + + if (m_pGlassRawInfo) + { + m_pGlassRawInfo->m_ClientResultStep = APS_RES_None; + } +} + +emClientResult CDitGlassRawClient::GetClientResultStep() +{ + if (isConnect() == FALSE) return APS_RES_None; + + if (m_pGlassRawInfo) + { + return m_pGlassRawInfo->m_ClientResultStep; + } + + return APS_RES_None; +} +/* < KJG 20240620 - #4942 ADD End >*/ emAOIProcStep CDitGlassRawClient::GetProcessStep() { @@ -171,6 +193,9 @@ if(isConnect() == FALSE) return FALSE; m_pGlassRawInfo->m_ClientProcStep = APS_GlassLoading; m_pGlassData->m_bStackRead = FALSE; + /*< KJG 20211024 - #3487 ADD Start >*/ + m_pGlassData->m_bRawMergeRead = FALSE; + /*< KJG 20211024 - #3487 ADD End >*/ return SetCommand(grcSequenceGlassLoading); } @@ -190,7 +215,7 @@ BOOL CDitGlassRawClient::SetReviewEnd() { - if(isConnect() == FALSE) return FALSE; + if(isConnect() == FALSE) return FALSE; m_pGlassRawInfo->m_ClientProcStep = APS_ReviewEnd; return SetCommand(grcSequenceReviewEnd); } @@ -202,20 +227,10 @@ return SetCommand(grcSequenceCustomReviewDataRead); } -CDitGlassRawClient* CDitGlassRawClient::GetInstance() -{ - if(m_pDitGlassClient == NULL) - { - m_pDitGlassClient = new CDitGlassRawClient; - } - - return m_pDitGlassClient; -} - void CDitGlassRawClient::RemoveReviewDefects() { int nDefectNum = m_pGlassData->m_nDefectNum; - int nRightDefectNum = 0;//占쏙옙占쏙옙占쏙옙 占쏙옙占쏙옙占십울옙 占쏙옙치占쏙옙 占쏙옙占쏙옙 占쏙옙占쏙옙 + int nRightDefectNum = 0;//기준점 오른쪽에 위치한 결함 갯수 int nDefectDeleteNum = 0; for(int i=nDefectNum-1; i>=0; i--) { @@ -236,5 +251,3 @@ m_pGlassData->m_nDefectNum = nDefectNum-nDefectDeleteNum; } - -CDitGlassRawClient* CDitGlassRawClient::m_pDitGlassClient; \ No newline at end of file -- Gitblit v1.9.3