| | |
| | | #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) |
| | |
| | | } |
| | | |
| | | BOOL CDitGlassRawClient::ConnectGlassRawData() |
| | | { |
| | | { |
| | | SIZE_T nGlassRawSharedSize = m_pGlassRawInfo->m_nGlassRawDataSize; |
| | | |
| | | if(m_hMapGlassData == NULL) |
| | |
| | | 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; |
| | | } |
| | |
| | | |
| | | 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; |
| | |
| | | |
| | | 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() |
| | | { |
| | |
| | | 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); |
| | | } |
| | | |
| | |
| | | |
| | | BOOL CDitGlassRawClient::SetReviewEnd() |
| | | { |
| | | if(isConnect() == FALSE) return FALSE; |
| | | if(isConnect() == FALSE) return FALSE; |
| | | m_pGlassRawInfo->m_ClientProcStep = APS_ReviewEnd; |
| | | return SetCommand(grcSequenceReviewEnd); |
| | | } |
| | |
| | | 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--) |
| | | { |
| | |
| | | |
| | | m_pGlassData->m_nDefectNum = nDefectNum-nDefectDeleteNum; |
| | | } |
| | | |
| | | CDitGlassRawClient* CDitGlassRawClient::m_pDitGlassClient; |