From 12c02f064db12d6d94063bf6dd9e4eb80f4252b8 Mon Sep 17 00:00:00 2001 From: LYW <leeyeanwoo@diteam.co.kr> Date: 월, 11 10월 2021 15:30:00 +0900 Subject: [PATCH] Ongoing60 #3662 CF AOI Review 전설비 알람 발생 조치 - Review History File Mapping 해제 - Review Inner History 다운 현상 예외처리 추가 - Review End 시 Review 다운 현상 예외처리 추가 --- ReviewSystem/ReviewSystem/SequenceProcessor_CPJT.cpp | 960 +++++++++++++++++++++++++++++++++-------------------------- 1 files changed, 542 insertions(+), 418 deletions(-) diff --git a/ReviewSystem/ReviewSystem/SequenceProcessor_CPJT.cpp b/ReviewSystem/ReviewSystem/SequenceProcessor_CPJT.cpp index 8751217..aa133fc 100644 --- a/ReviewSystem/ReviewSystem/SequenceProcessor_CPJT.cpp +++ b/ReviewSystem/ReviewSystem/SequenceProcessor_CPJT.cpp @@ -51,7 +51,7 @@ #define AOIRAWBIN_NETWORK_DRIVE_PATH "Y:\\RawBin" enum CPJT_MeasureMode { CPJT_ModeAuto = 0, CPJT_ModeManual }; -// [2017:4:18]-[WEZASW] : WSI Module 占쏙옙占쏙옙 占쏙옙占쏙옙占쏙옙 占쏙옙占� PlanType 占쏙옙호 占쏙옙占쏙옙. +// [2017:4:18]-[WEZASW] : WSI Module enum CPJT_PlanType { CPJT_PlanReview = 0, CPJT_PlanUser, CPJT_PlanWSI, CPJT_PlanMeasure, CPJT_PlanReflow, CPJT_PlanWsiReflow, CPJT_PlanWsiUser,CPJT_PlanWsiMultiShot }; enum CPJT_InsepectionType{REVIEW_REFLOW = 0, WSI_REFLOW, REV_WSI,WSIUSER, USER,WSIMULTISHOT}; @@ -169,7 +169,7 @@ CDitGlassRawClient* pDitGlassRaw = CDitGlassRawClient::GetInstance(); if(pDitGlassRaw->ConnectServer() == FALSE) { - g_pLog->DisplayMessage(_T("占쏙옙占쏙옙占쌨몌옙 占쏙옙占쏙옙 占쏙옙占쏙옙!(Shared memory Access Fail)")); + g_pLog->DisplayMessage(_T("(Shared memory Access Fail)")); } } @@ -183,17 +183,15 @@ EnterCriticalSection(&m_csProcessStatus); BOOL bReturn = FALSE; - - // 占쏙옙占쏙옙 占쏙옙占승곤옙 占쏙옙占쏙옙 占쏙옙占승울옙 占쌕몌옙占쏙옙? //if (nProcessStatus!=m_nProcessStatus || nProcessStatus==0) if (1)//nProcessStatus!=m_nProcessStatus || nProcessStatus==0) { - //if (nProcessStatus==0) // 占십깍옙(0) 占쏙옙占쏙옙占싱몌옙.. + //if (nProcessStatus==0) //{ // bReturn = TRUE; //} - // else if (nProcessStatus==(m_nProcessStatus+1)) // 占쏙옙占쏙옙 占쏙옙占쏙옙 占쏙옙占쏙옙(+1)占싱몌옙.. + // else if (nProcessStatus==(m_nProcessStatus+1)) // { // bReturn = TRUE; // } @@ -204,9 +202,8 @@ // bReturn = FALSE; //} - if (bReturn) // 占쏙옙占쏙옙占싱몌옙... + if (bReturn) { - // Thread 占쏙옙占쏙옙 占쏙옙 Thread 占쏙옙占쏙옙 CSequenceProcessData* pThreadData = new CSequenceProcessData(this); if (pThreadData) { @@ -227,7 +224,6 @@ } } else if(nProcessStatus==2){ - // Thread 占쏙옙占쏙옙 占쏙옙 Thread 占쏙옙占쏙옙 CSequenceProcessData* pThreadData = new CSequenceProcessData(this); if (pThreadData) { @@ -277,7 +273,6 @@ CReviewResult* pWsiResult = pGlassResult->GetWsiResult(nModuleIndex); if (pWsiResult==NULL) goto RESULT_FAIL; - // 占쏙옙占쏙옙占쏙옙 占싸듸옙占쏙옙占쏙옙 占쏙옙占쏙옙占승댐옙. int nCurResultIdx = pWsiResult->GetLastSReviewResultIndex() + 1; // last index + 1 int nStartResultIdx = pWsiResult->GetStartSReviewResultIndex(); int nEndResultIdx = pWsiResult->GetEndSReviewResultIndex(); @@ -291,13 +286,11 @@ int nMPosY = int(pPosition->dMotorPosY * 1000.0); double dTime = (double) m_ProcessTimer.GetDurationMilliSecond(); - // 占싸듸옙占쏙옙占쏙옙 占쌕몌옙占쏙옙 占쏙옙占쏙옙占쏙옙占쏙옙. if (measureResut.nResultIndex != nCurResultIdx) { goto RESULT_FAIL; } - // 占쏙옙占쏙옙 占쏙옙占쏙옙占쏙옙 占쏙옙占쏙옙. // measureResut if(pWsiResult->GetSReviewResultCount() == 0) return ; @@ -324,7 +317,6 @@ // set last result idx pWsiResult->SetLastSReviewResultIndex(nCurResultIdx); - // 占쏙옙占쏙옙占쏙옙 占쏙옙占쏙옙트占쏙옙占쏙옙 占쌉곤옙, WSI 占쏙옙占쏙옙占� 占쏙옙占쏙옙 占쏙옙占쏙옙占쏙옙... if(nCurResultIdx==nEndResultIdx && nCurResultIdx<=pWsiResult->GetSReviewResultCount()) { nStartResultIdx = nCurResultIdx + 1; @@ -335,8 +327,7 @@ pWsiResult->SetStartSReviewResultIndex(nStartResultIdx); pWsiResult->SetEndSReviewResultIndex(nEndResultIdx); - // 占쏙옙占쏙옙占쏙옙 占쏙옙占쏙옙트 占쏙옙占쏙옙 占쏙옙占쏙옙占쏙옙占쏙옙. - ::Sleep(3000); // 占쏙옙占쏙옙甄占� 占십쇽옙占쏙옙. 占쏙옙占쏙옙占쏙옙 占쏙옙占쏙옙 占쏙옙占쏙옙. + ::Sleep(3000); // Process_RemainWsiPoint(nModuleIndex); } @@ -362,7 +353,6 @@ CReviewResult* pWsiResult = pGlassResult->GetWsiUserResult(nModuleIndex); if (pWsiResult==NULL) goto RESULT_FAIL; - // 占쏙옙占쏙옙占쏙옙 占싸듸옙占쏙옙占쏙옙 占쏙옙占쏙옙占승댐옙. int nCurResultIdx = pWsiResult->GetLastSReviewResultIndex() + 1; // last index + 1 int nStartResultIdx = pWsiResult->GetStartSReviewResultIndex(); int nEndResultIdx = pWsiResult->GetEndSReviewResultIndex(); @@ -376,13 +366,11 @@ int nMPosY = int(pPosition->dMotorPosY * 1000.0); double dTime = (double) m_ProcessTimer.GetDurationMilliSecond(); - // 占싸듸옙占쏙옙占쏙옙 占쌕몌옙占쏙옙 占쏙옙占쏙옙占쏙옙占쏙옙. if (measureResut.nResultIndex != nCurResultIdx) { goto RESULT_FAIL; } - // 占쏙옙占쏙옙 占쏙옙占쏙옙占쏙옙 占쏙옙占쏙옙. // measureResut if(pWsiResult->GetSReviewResultCount() == 0) return ; @@ -407,7 +395,6 @@ // set last result idx pWsiResult->SetLastSReviewResultIndex(nCurResultIdx); - // 占쏙옙占쏙옙占쏙옙 占쏙옙占쏙옙트占쏙옙占쏙옙 占쌉곤옙, WSI 占쏙옙占쏙옙占� 占쏙옙占쏙옙 占쏙옙占쏙옙占쏙옙... if(nCurResultIdx==nEndResultIdx && nCurResultIdx<=pWsiResult->GetSReviewResultCount()) { nStartResultIdx = nCurResultIdx + 1; @@ -418,8 +405,7 @@ pWsiResult->SetStartSReviewResultIndex(nStartResultIdx); pWsiResult->SetEndSReviewResultIndex(nEndResultIdx); - // 占쏙옙占쏙옙占쏙옙 占쏙옙占쏙옙트 占쏙옙占쏙옙 占쏙옙占쏙옙占쏙옙占쏙옙. - ::Sleep(3000); // 占쏙옙占쏙옙甄占� 占십쇽옙占쏙옙. 占쏙옙占쏙옙占쏙옙 占쏙옙占쏙옙 占쏙옙占쏙옙. + ::Sleep(3000); // Process_RemainWsiPoint(nModuleIndex); } @@ -442,6 +428,8 @@ g_pLog->DisplayMessage(_T("[AlignResult] Glass Result is NULL!")); SendResultToSignalControl(PCControlSendData_AlignResult_CPJT, SIGNAL_SEND_RESULT_FAIL); m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::AlignStart] Send Align Fail Signal!")); + + AlignCamera_CameraControl(CameraControlStop); // 210805 Align Camera Sequence 占쏙옙占쏙옙 return; } @@ -449,7 +437,6 @@ CAlignResult *pAlignResult = &pGlassResult->m_AlignResult; CAlignRecipe *pAlignRecipe = &pGlassResult->m_AlignRecipe; - // 占쏙옙占쏙옙占� 占쌘듸옙占쏙옙占쏙옙 占쏙옙占� 占쏙옙占쏙옙占실울옙 占쏙옙占쏙옙占쏙옙占쏙옙. CRsRcpAlignInfo *pRsRcpAlignInfo = m_pSP2P->ISP2P_Recipe_GetRsRcpAlignInfo(); if (pRsRcpAlignInfo!=NULL && pRsRcpAlignInfo->m_bAutoProcess) { @@ -463,25 +450,21 @@ pRsRcpAlignInfo->m_dSecondCamExposure = pCurAlignResult->dExposureTime[1]; } - // 占쏙옙占쏙옙占쏙옙 占쏙옙占쏙옙타 占쏙옙占쏙옙 //m_pDoc->Recipe_WriteRecipeFile(); } BOOL bLastAlignResult = FALSE; CCoordCalibrator *pCoordCalibrator = m_pSP2P->ISP2P_GetCoordCalibrator(); - // 占쏙옙占쏙옙 占쏙옙占쏙옙占� 占쏙옙占�.. if (pCoordCalibrator && pCurAlignResult->nResultCode==Align_Success) { g_pLog->DisplayMessage(_T("[AlignResult] Align Find Success!")); - // 占쏙옙占쏙옙占� 占쏙옙占� 占쌜띰옙 占쏙옙占쏙옙占쏙옙 占쏙옙占쏙옙 *pAlignResult = *pCurAlignResult; pCoordCalibrator->SetFirstMarkPos(pAlignResult->dFindPositionX[0], pAlignResult->dFindPositionY[0], pAlignRecipe->dGlassPositionX[0], pAlignRecipe->dGlassPositionY[0]); pCoordCalibrator->SetSecondMarkPos(pAlignResult->dFindPositionX[1], pAlignResult->dFindPositionY[1], pAlignRecipe->dGlassPositionX[1], pAlignRecipe->dGlassPositionY[1]); - // 占쏙옙占쏙옙 占쏙옙占� if(pCoordCalibrator->CalculateAlignResult() == TRUE) { sAlignResult = pCoordCalibrator->GetAlignResult(); @@ -490,38 +473,35 @@ bLastAlignResult = !pAlignRecipe->bRotateProcess; } - // 占쌜띰옙 占쏙옙占쏙옙 占쏙옙占쏙옙 占쏙옙占쏙옙 CCameraControlAlign *pAlignCameraControl = m_pSP2P->ISP2P_GetAlignCameraControl(); SThetaMotorInfo* pThetaMotorInfo = m_pSP2P->ISP2P_GetThetaMotorInfo(); CMotorControl* pMotorControl = m_pSP2P->ISP2P_GetMotorControl(); if (pAlignRecipe->bRotateProcess && pAlignCameraControl && pMotorControl && pThetaMotorInfo) { - if (fabs(sAlignResult.dDegree) <= pAlignRecipe->dGlassAngleMin) // 占쏙옙占쏙옙 占쌜띰옙 占쏙옙占쏙옙占쏙옙 占쌍소곤옙占쏙옙占쏙옙 占쏙옙占쏙옙占쏙옙 占쏙옙占쏙옙 + if (fabs(sAlignResult.dDegree) <= pAlignRecipe->dGlassAngleMin) { bLastAlignResult = TRUE; g_pLog->DisplayMessage(_T("[AlignResult] Success! Last Glass Angle : %.8lf degree, Retry Count : %d ea"), sAlignResult.dDegree, pCurAlignResult->nFindCount); } - else if (fabs(sAlignResult.dDegree) > pAlignRecipe->dGlassAngleMax) // 占쏙옙占쏙옙 占쌜띰옙 占쏙옙占쏙옙占쏙옙 占쌍대각占쏙옙占쏙옙 크占쏙옙 占쏙옙占쏙옙 + else if (fabs(sAlignResult.dDegree) > pAlignRecipe->dGlassAngleMax) { bLastAlignResult = FALSE; g_pLog->DisplayMessage(_T("[AlignResult] FAIL! Last Glass Angle : %.8lf degree, Retry Count : %d ea"), sAlignResult.dDegree, pCurAlignResult->nFindCount); } - else if (pCurAlignResult->nFindCount < pAlignRecipe->nRetryCount) // 占썹보占쏙옙 횟占쏙옙占쏙옙 占쏙옙占쏙옙占쏙옙 횟占쏙옙 占쏙옙占쏙옙占싱몌옙 占썹보占쏙옙 占쏙옙占쏙옙 + else if (pCurAlignResult->nFindCount < pAlignRecipe->nRetryCount) { g_pLog->DisplayMessage(_T("[AlignResult] Current Glass Angle : %.8lf degree, Retry Count : %d ea"), sAlignResult.dDegree, pCurAlignResult->nFindCount); - // 占쏙옙占싶뤄옙 占쏙옙占쏙옙 占쏙옙占쏙옙.. double dCalAngle = sAlignResult.dDegree; dCalAngle = pThetaMotorInfo->dPosition - dCalAngle ; g_pLog->DisplayMessage(_T("[AlignResult] Move Rotate Glass Angle : %.8lf degree"), dCalAngle); pMotorControl->AxisThetaManualGoEnd(dCalAngle); ::Sleep(100); - // 占쏙옙占쏙옙占� ReProcess if (pAlignCameraControl->AlignProcess()) { g_pLog->DisplayMessage(_T("[AlignResult] Align Find Process ReStarted!")); @@ -556,8 +536,7 @@ //m_pView->SetAlignResult(pAlignResult->nResultCode, sAlignResult.dOriginX, sAlignResult.dOriginY, sAlignResult.dDegree); } - // PCControl 占쏙옙占쏙옙占� 占쏙옙호 占쏙옙占쏙옙. - if (bLastAlignResult) // 占쏙옙占쏙옙 占쏙옙占쏙옙寬占쏙옙... + if (bLastAlignResult) { SendResultToSignalControl(PCControlSendData_AlignResult_CPJT, SIGNAL_SEND_RESULT_SUCCESS); m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::AlignStart] Send Align Success Data!")); @@ -567,6 +546,8 @@ SendResultToSignalControl(PCControlSendData_AlignResult_CPJT, SIGNAL_SEND_RESULT_FAIL); m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::AlignStart] Send Align Fail Data!")); } + + AlignCamera_CameraControl(CameraControlStop); // 210805 Align Camera Sequence 蹂�寃� SendSignalToSignalControl(PCControlSendSignalIndex_Seq, PCControlSend_AlignComplete_CPJT); m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::AlignStart] Send Align Complete Signal!")); @@ -689,13 +670,10 @@ m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::ReviewStart] Send Review Success Signal!")); m_pSP2P->ISP2P_UpdateReviewProcessStatus(ReviewProcessStatus_None, nPlanIndex); - - //占쏙옙占쏙옙占� AFM_SetAFMTracking(FALSE); return; } - //190727 chm WSI 占쏙옙占쏙옙占� End 체크 占쏙옙 占쏙옙占쏙옙 if(nBeforePlanIndex== CPJT_PlanWSI||nBeforePlanIndex== CPJT_PlanWsiReflow||nBeforePlanIndex== CPJT_PlanWsiUser) { if(pPlanInfo->m_nReviewType == CPJT_PlanWSI ||pPlanInfo->m_nReviewType == CPJT_PlanWsiReflow||pPlanInfo->m_nReviewType== CPJT_PlanWsiUser || pPlanInfo->m_nReviewType == CPJT_PlanWsiMultiShot) @@ -724,13 +702,12 @@ } } - //190727 chm WSI type 占쏙옙占쏙옙占쏙옙 Review 占시뤄옙占쏙옙 占쏙옙占쏙옙占� 카占쌨띰옙 占쌜띰옙 占쌜울옙 占쏙옙占쏙옙占쏙옙痢� 占쏙옙占쏙옙... if(nBeforePlanIndex== CPJT_PlanWSI ||nBeforePlanIndex== CPJT_PlanWsiReflow||nBeforePlanIndex== CPJT_PlanWsiUser) { if( pPlanInfo->m_nReviewType == CPJT_PlanReview|| pPlanInfo->m_nReviewType == CPJT_PlanUser|| pPlanInfo->m_nReviewType == CPJT_PlanMeasure|| pPlanInfo->m_nReviewType == CPJT_PlanReflow) { - CTotalPitchMeasure* pTotapPithMeasure = m_pSP2P->ISP2P_GetTotalPitchMeasure(); // 占쏙옙占쏙옙占쏙옙占�! 20190730 chm 占쏙옙占쌩울옙 占쌉쇽옙占쏙옙 占쏙옙占쏙옙.... + CTotalPitchMeasure* pTotapPithMeasure = m_pSP2P->ISP2P_GetTotalPitchMeasure(); const CMotorControlInfo* pSystemMotorInfo = m_pSP2P->ISP2P_System_GetMotorInfo(); if(pSystemMotorInfo !=NULL) @@ -774,8 +751,6 @@ if(pPlanInfo == NULL) continue; //210325 - //END 占쏙옙 占쏙옙琯占쏙옙占� 占실억옙占쏙옙占쏙옙占쏙옙占� 占쌔댐옙 占쌉쇽옙占쏙옙 占쏙옙占쏙옙占쏙옙占� 占쏙옙占싣곤옙占쏙옙 占쌍억옙 start 占쌉쇽옙占쏙옙 타占쏙옙占쏙옙 - //占쌓것울옙 占쏙옙占쏙옙 占쏙옙占쏙옙처占쏙옙 if (GetProcessStatus() == ProcessReviewEnd_CPJT || GetProcessStatus() == ProcessReviewUnloding_CPJT) { g_pLog->DisplayMessage(_T("[ProcessStop] StartProcessing Sequence Stop Status : %d"), GetProcessStatus()); @@ -788,6 +763,20 @@ if (( nTotalCount += pGlassResult->GetTotalSReviewResultCount()) > 0) { m_pSP2P->ISP2P_DisplayMessage(_T("[Sequence Processor] Review Plan Start!")); + //LYW DCOLL 占쌈쏙옙占쏙옙치 + CDitGlassRawClient *pDitRawClient = CDitGlassRawClient::GetInstance(); + if (pDitRawClient->isConnect() == TRUE) + { + + _grmDefectData* pSharedDefect = pDitRawClient->GetDefectData(0);//pReviewResult->nDefectidx2 + _grmDefectReviewData * pSharedDefectReview = &pSharedDefect->m_ReviewDefect; + + //size_t CharactersConverted; + //wcstombs_s(&CharactersConverted, pSharedDefectReview->m_strRevImageName, pReviewResult->strImgFileName, _TRUNCATE); + + strcpy(pSharedDefectReview->m_strRevImageName, ""); + } + //LYW DCOLL 占쌈쏙옙占쏙옙치 ::Sleep(nWaitTime); m_pSP2P->ISP2P_GetReviewProcessor()->ResetGantryDone(); bExcute = ReviewStartProcessing(pGlassResult, nPlanIdx); @@ -816,7 +805,7 @@ m_pSP2P->ISP2P_DisplayMessage(_T("[Sequence Processor] WSI Plan End!")); } break; - //占싱삼옙占� + case CPJT_PlanMeasure: if (( nTotalCount += pGlassResult->GetTotalSMeasureResultCount()) > 0) { @@ -916,6 +905,9 @@ break; } + //#3584 210817 LYW CF AOI Review �떆裕щ젅�씠�뀡 湲곕뒫 �젙�긽�솕 ADD START + SetSimulationMode(FALSE); + //#3584 210817 LYW CF AOI Review �떆裕щ젅�씠�뀡 湲곕뒫 �젙�긽�솕 ADD END return; } @@ -925,17 +917,28 @@ AllAckSignalOff(); m_pSP2P->ISP2P_GetReviewProcessor()->ResetGantryDone(); - SetCheckWSIEnd(-1); //190726 wsiend체크 占십깍옙화 - SetWsiType(-1); //wsi reflow 타占쏙옙 占쏙옙占쏙옙 占십깍옙화 + SetCheckWSIEnd(-1); //190726 + SetWsiType(-1); //wsi reflow SetLastPointCheck(FALSE); bFileFind = FALSE; m_pSP2P->ISP2P_GetDiagnosisHistory(); - - if (SendSignalToSignalControl(PCControlSendSignalIndex_Ack, PCControlSend_LoadingAck_CPJT)) - m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::GlassLoading] Send Loading Ack Signal!")); + m_pSP2P->ISP2P_SetFirstReviewLeft(TRUE); + m_pSP2P->ISP2P_SetFirstReviewRight(TRUE); + + //#3584 210817 LYW CF AOI Review �떆裕щ젅�씠�뀡 湲곕뒫 �젙�긽�솕 MOD START + if (GetSimulationMode() == FALSE) + { + if (SendSignalToSignalControl(PCControlSendSignalIndex_Ack, PCControlSend_LoadingAck_CPJT)) + m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::GlassLoading] Send Loading Ack Signal!")); + } + //#3584 210817 LYW CF AOI Review �떆裕щ젅�씠�뀡 湲곕뒫 �젙�긽�솕 MOD END + //Original +// if (SendSignalToSignalControl(PCControlSendSignalIndex_Ack, PCControlSend_LoadingAck_CPJT)) +// m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::GlassLoading] Send Loading Ack Signal!")); + // read config file if(!m_pSP2P->ISP2P_System_ReadConfigFile()) m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor] System Value Loading FAIL!")); @@ -953,18 +956,18 @@ } m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::Loading] Glass Result Count : %d ea"), nGlassResultCount); - pGlassResult->ResetDefocusCount();//占싸듸옙 占싸분울옙占쏙옙 defocus count 占십깍옙화 190821 chm + pGlassResult->ResetDefocusCount(); CTime time = CTime::GetCurrentTime(); pGlassResult->m_strResultDate.Format(_T("%04d.%02d.%02d"), time.GetYear(), time.GetMonth(), time.GetDay()); - //if(Revolver_SetGoHome(0)) // 占쏙옙占쏙옙占쏙옙 HOME 占쏙옙占쏙옙占쏙옙 + //if(Revolver_SetGoHome(0)) //{ // m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::Loading] Revolver Set GoHome Success!")); //} - //#3357 KYH Align Image 占십깍옙화 ADD START + //#3357 KYH Align Image ADD START CCameraControlAlign* pAlignCameraControl = m_pSP2P->ISP2P_GetAlignCameraControl(); if (pAlignCameraControl != NULL) { @@ -972,7 +975,7 @@ g_pLog->DisplayMessage(_T("[Align] Align Image Clear")); } - //#3357 KYH Align Image 占십깍옙화 ADD END + //#3357 KYH Align Image ADD END // get transfer data int nResultCode = 0; @@ -999,13 +1002,20 @@ if (pDitRawClient->isConnect()==FALSE) { - m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::GlassLoading]占쏙옙占쏙옙占쌨몌옙 占쏙옙占쏙옙 占쏙옙占쏙옙 占썹연占쏙옙 占시듸옙 ")); + m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::GlassLoading] DitRawClient Connect Fail ")); int nReconnect=0; while (1) { if (nReconnect == 3) { - SendResultToSignalControl(PCControlSendData_LoadingResult_CPJT, SIGNAL_SEND_RESULT_FAIL); + //#3584 210817 LYW CF AOI Review �떆裕щ젅�씠�뀡 湲곕뒫 �젙�긽�솕 MOD START + if (GetSimulationMode() == FALSE) + { + SendResultToSignalControl(PCControlSendData_LoadingResult_CPJT, SIGNAL_SEND_RESULT_FAIL); + } + //#3584 210817 LYW CF AOI Review �떆裕щ젅�씠�뀡 湲곕뒫 �젙�긽�솕 MOD END + //original + /*SendResultToSignalControl(PCControlSendData_LoadingResult_CPJT, SIGNAL_SEND_RESULT_FAIL);*/ m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::GlassLoading] Send Loading FAIL Signal!")); break; @@ -1014,11 +1024,11 @@ Sleep(1000); if (pDitRawClient->isConnect() == FALSE) { - m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::GlassLoading]占쏙옙占쏙옙占쌨몌옙 占쏙옙占쏙옙 占쏙옙占쏙옙 Count[%d]"), nReconnect); + m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::GlassLoading]DitRawClient Connect Fail Count[%d]"), nReconnect); } else { - m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::GlassLoading]占쏙옙占쏙옙占쌨몌옙 占쏙옙占쏙옙 占쏙옙占쏙옙")); + m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::GlassLoading]DitRawClient Connect Success")); break; } nReconnect += 1; @@ -1028,9 +1038,9 @@ } - // #3381 LYW CF AOI Review 占쏙옙占쏙옙占쏙옙 FDC TackTime 占쏙옙占쏙옙占쏙옙 占쏙옙占쏙옙 占쏙옙占쏙옙 ADD START + // #3381 LYW CF AOI Review FDC TackTime ADD START pDitRawClient->GetGlassData()->m_tmReviewLoading = CTime::GetCurrentTime(); - // #3381 LYW CF AOI Review 占쏙옙占쏙옙占쏙옙 FDC TackTime 占쏙옙占쏙옙占쏙옙 占쏙옙占쏙옙 占쏙옙占쏙옙 ADD END + // #3381 LYW CF AOI Review FDC TackTime ADD END CString strGlassIDTemp = NULL; @@ -1047,9 +1057,21 @@ m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::GlassLoading] Send Loading Success Signal!")); strFileName.Format(_T("%s_%s"), strGlassIDTemp, strGlassStepIdTemp); + //占쏙옙占쏙옙占쏙옙트占쏙옙 - //bFileFind = FindRawBinFile(strFileName); - bFileFind = TRUE; + + //#3584 210817 LYW CF AOI Review �떆裕щ젅�씠�뀡 湲곕뒫 �젙�긽�솕 MOD START + if (GetSimulationMode() == FALSE) + { + bFileFind = FindRawBinFile(strFileName); + } + else + { + bFileFind = TRUE; + } + //#3584 210817 LYW CF AOI Review �떆裕щ젅�씠�뀡 湲곕뒫 �젙�긽�솕 MOD END + //original + /*bFileFind = FindRawBinFile(strFileName);*/ pDitRawClient->SetReviewStart(); Sleep(1000); @@ -1094,7 +1116,7 @@ } } - //// 190725 占쏙옙占쏙옙占� 占쏙옙청占쏙옙占쏙옙 chm ASCEND 占쏙옙 alarm + //// 190725 chm ASCEND alarm const CRsRcpReviewInfo* pRsRcpReviewInfo = m_pSP2P->ISP2P_Recipe_GetRsRcpReviewInfo(); const CRcpSortingInfo *pSortingInfo = pRsRcpReviewInfo->GetRcpReviewSortInfo(); @@ -1111,7 +1133,7 @@ - ////占쏙옙占쏙옙占쏙옙 占쏙옙占쏙옙占쏙옙占쏙옙 占싫깍옙 190618 + ////190618 if(GetUseAfmHomePosition()) { g_pLog->DisplayMessage(_T("[AFM] AFM Home Position Start!!!")); @@ -1120,7 +1142,6 @@ } - //占쏙옙占쏙옙占쌨몌옙 커占쏙옙占� 占쏙옙占쏙옙 占쏙옙타트(占쌜띰옙 占싸듸옙) CDitGlassRawClient* pDitSharedGlassRaw = CDitGlassRawClient::GetInstance(); if (pDitSharedGlassRaw->isConnect() == FALSE) { m_pSP2P->ISP2P_DisplayMessage(_T("[DitGlassRawClient] Shared Memory Connect Fail")); @@ -1155,25 +1176,42 @@ // review camera stop ReviewCamera_CameraControl(CameraControlStop); - //AlignCamera_CameraControl(CameraControlLive); + AlignCamera_CameraControl(CameraControlStop); // 210805 Align Camera Sequence 占쏙옙占쏙옙 - // send signal to plc - if (nResultCode==0) - { - SendResultToSignalControl(PCControlSendData_LoadingResult_CPJT, SIGNAL_SEND_RESULT_SUCCESS); - m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::GlassLoading] Send Loading Success Signal!")); - } - else - { - SendResultToSignalControl(PCControlSendData_LoadingResult_CPJT, SIGNAL_SEND_RESULT_FAIL); - m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::GlassLoading] Send Loading FAIL Signal!")); - } + //#3584 210817 LYW CF AOI Review �떆裕щ젅�씠�뀡 湲곕뒫 �젙�긽�솕 MOD START + // send signal to plc + if (GetSimulationMode() == FALSE) + { + if (nResultCode == 0) + { + SendResultToSignalControl(PCControlSendData_LoadingResult_CPJT, SIGNAL_SEND_RESULT_SUCCESS); + m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::GlassLoading] Send Loading Success Signal!")); + } + else + { + SendResultToSignalControl(PCControlSendData_LoadingResult_CPJT, SIGNAL_SEND_RESULT_FAIL); + m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::GlassLoading] Send Loading FAIL Signal!")); + } + } + //#3584 210817 LYW CF AOI Review �떆裕щ젅�씠�뀡 湲곕뒫 �젙�긽�솕 MOD END + //original +// send signal to plc +// if (nResultCode==0) +// { +// SendResultToSignalControl(PCControlSendData_LoadingResult_CPJT, SIGNAL_SEND_RESULT_SUCCESS); +// m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::GlassLoading] Send Loading Success Signal!")); +// } +// else +// { +// SendResultToSignalControl(PCControlSendData_LoadingResult_CPJT, SIGNAL_SEND_RESULT_FAIL); +// m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::GlassLoading] Send Loading FAIL Signal!")); +// } // send cell data to review processorm_pDitGlass CReviewProcessor* pReviewProcessor = m_pSP2P->ISP2P_GetReviewProcessor(); if(pReviewProcessor == NULL) return ; pReviewProcessor->SetCellData(pGlassResult); - pReviewProcessor->SetReviewCount(0); // 占쏙옙占쏙옙 Sequence No 占십깍옙화. + pReviewProcessor->SetReviewCount(0); pReviewProcessor->SetPlanReviewCount(0); pReviewProcessor->SetPlanWSICount(0); // Process Status Update @@ -1195,8 +1233,16 @@ m_pSP2P->ISP2P_UpdateDefectFilter(pDefectFilter); } - SendSignalToSignalControl(PCControlSendSignalIndex_Seq, PCControlSend_LoadingComplete_CPJT); - m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::GlassLoading] Send Loading Complete Signal!")); + //#3584 210817 LYW CF AOI Review �떆裕щ젅�씠�뀡 湲곕뒫 �젙�긽�솕 MOD START + if (GetSimulationMode() == FALSE) + { + SendSignalToSignalControl(PCControlSendSignalIndex_Seq, PCControlSend_LoadingComplete_CPJT); + m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::GlassLoading] Send Loading Complete Signal!")); + } + //#3584 210817 LYW CF AOI Review �떆裕щ젅�씠�뀡 湲곕뒫 �젙�긽�솕 MOD END + //original +// SendSignalToSignalControl(PCControlSendSignalIndex_Seq, PCControlSend_LoadingComplete_CPJT); +// m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::GlassLoading] Send Loading Complete Signal!")); m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::OUT] Loading!")); @@ -1212,17 +1258,57 @@ { m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::IN] AlignStart!")); - if (SendSignalToSignalControl(PCControlSendSignalIndex_Ack, PCControlSend_AlignStartAck_CPJT)) - m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::AlignStart] Send Align Start Ack!")); - //Sleep(400);//占쏙옙占쏙옙占쏙옙 占쏙옙占쏙옙 占쏙옙占쏙옙占� 占쌍깍옙 chm190602 + //#3584 210817 LYW CF AOI Review �떆裕щ젅�씠�뀡 湲곕뒫 �젙�긽�솕 MOD START + if (GetSimulationMode() == FALSE) + { + if (SendSignalToSignalControl(PCControlSendSignalIndex_Ack, PCControlSend_AlignStartAck_CPJT)) + m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::AlignStart] Send Align Start Ack!")); + } + //#3584 210817 LYW CF AOI Review �떆裕щ젅�씠�뀡 湲곕뒫 �젙�긽�솕 MOD END + + //#3561 210908 LYW ADD Start + int nAlignReconnectRetryMaxCount = 3; + for (int i = 0; i < nAlignReconnectRetryMaxCount; i++) + { + if (AlignCamera_CameraControl(CameraControlLive) == FALSE) + { + m_pSP2P->ISP2P_DisplayMessage(_T("[AlignStart] AlignConnect Fail! Reconect Start! ReconnectRetry count = %d"), nAlignReconnectRetryMaxCount + 1); + system("netsh interface set interface name = \"Align #1\" admin = disable&& netsh interface set interface name = \"Align #1\" admin = enable&& netsh interface set interface name = \"Align #2\" admin = disable&& netsh interface set interface name = \"Align #2\" admin = enable"); + Sleep(10000); + m_pSP2P->ISP2P_InitAlignCamera(); + } + + else + { + m_pSP2P->ISP2P_DisplayMessage(_T("[AlignStart] AlignConnect Success! ")); + break; + } + + } + //#3561 210908 LYW ADD End + + Sleep(300); + + //original +// if (SendSignalToSignalControl(PCControlSendSignalIndex_Ack, PCControlSend_AlignStartAck_CPJT)) +// m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::AlignStart] Send Align Start Ack!")); // 1. get current glass result CGlassResult* pGlassResult = m_pSP2P->ISP2P_GetCurrentGlassResult(); - if (pGlassResult==NULL) { return; } + if (pGlassResult==NULL) + { + Sleep(350); + AlignCamera_CameraControl(CameraControlStop); // 210805 Align Camera Sequence 占쏙옙占쏙옙 + return; + } const CRsRcpAlignInfo* pRsRcpAlignInfo = m_pSP2P->ISP2P_Recipe_GetRsRcpAlignInfo(); - if(pRsRcpAlignInfo == NULL) return; - + if (pRsRcpAlignInfo == NULL) + { + Sleep(350); + AlignCamera_CameraControl(CameraControlStop); // 210805 Align Camera Sequence 占쏙옙占쏙옙 + return; + } // 2. get align camera control CCameraControlAlign* pAlignCameraControl = m_pSP2P->ISP2P_GetAlignCameraControl(); @@ -1230,24 +1316,48 @@ if(pRsRcpAlignInfo->m_bAlignSkipMode) { m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::AlignStart] Align Skip Mode !!!!!!!")); + //#3584 210817 LYW CF AOI Review �떆裕щ젅�씠�뀡 湲곕뒫 �젙�긽�솕 MOD START + if (GetSimulationMode() == FALSE) + { + SendResultToSignalControl(PCControlSendData_AlignResult_CPJT, SIGNAL_SEND_RESULT_SUCCESS); + m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::AlignStart] Send Align SUCCESS Data!")); + SendSignalToSignalControl(PCControlSendSignalIndex_Seq, PCControlSend_AlignComplete_CPJT); + m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::AlignStart] Send Align Complete Signal!")); + //#3584 210817 LYW CF AOI Review �떆裕щ젅�씠�뀡 湲곕뒫 �젙�긽�솕 MOD END + } + //original +// SendResultToSignalControl(PCControlSendData_AlignResult_CPJT, SIGNAL_SEND_RESULT_SUCCESS); +// m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::AlignStart] Send Align SUCCESS Data!")); +// SendSignalToSignalControl(PCControlSendSignalIndex_Seq, PCControlSend_AlignComplete_CPJT); +// m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::AlignStart] Send Align Complete Signal!")); - SendResultToSignalControl(PCControlSendData_AlignResult_CPJT, SIGNAL_SEND_RESULT_SUCCESS); - m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::AlignStart] Send Align SUCCESS Data!")); - SendSignalToSignalControl(PCControlSendSignalIndex_Seq, PCControlSend_AlignComplete_CPJT); - m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::AlignStart] Send Align Complete Signal!")); + Sleep(350); + AlignCamera_CameraControl(CameraControlStop); // 210805 Align Camera Sequence 占쏙옙占쏙옙 } else { - // 190710 SJB Align Camera Disconnect Check, Align Step 占쏙옙占쏙옙 占쏙옙占쏙옙 확占쏙옙占싼댐옙. + // 190710 SJB Align Camera Disconnect Check, Align Step if(pAlignCameraControl) { if(pAlignCameraControl->AlignCameraDisconnectCheck() == FALSE) { - SendResultToSignalControl(PCControlSendData_AlignResult_CPJT, SIGNAL_SEND_RESULT_FAIL); - m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::AlignStart] Send Align Fail! Align Cam Disconnect")); - m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::AlignStart] Algin Camera Disconnect!!!!")); + //#3584 210817 LYW CF AOI Review �떆裕щ젅�씠�뀡 湲곕뒫 �젙�긽�솕 MOD START + if (GetSimulationMode() == FALSE) + { + SendResultToSignalControl(PCControlSendData_AlignResult_CPJT, SIGNAL_SEND_RESULT_FAIL); + m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::AlignStart] Algin Camera Disconnect!!!!")); + } + //#3584 210817 LYW CF AOI Review �떆裕щ젅�씠�뀡 湲곕뒫 �젙�긽�솕 MOD END + //original +// SendResultToSignalControl(PCControlSendData_AlignResult_CPJT, SIGNAL_SEND_RESULT_FAIL); +// m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::AlignStart] Algin Camera Disconnect!!!!")); } } + else + { + Sleep(350); + AlignCamera_CameraControl(CameraControlStop); // 210805 Align Camera Sequence 占쏙옙占쏙옙 + } if (pGlassResult && pAlignCameraControl && pAlignCameraControl->AlignProcess()) { @@ -1255,16 +1365,26 @@ } else { - //占쏙옙占쏙옙占쌩듸옙 Sleep(1000); - //TEST 占쏙옙占� { - SendResultToSignalControl(PCControlSendData_AlignResult_CPJT, SIGNAL_SEND_RESULT_SUCCESS); - m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::AlignStart] Send Align SUCCESS Data!")); - SendSignalToSignalControl(PCControlSendSignalIndex_Seq, PCControlSend_AlignComplete_CPJT); - m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::AlignStart] Send Align Complete Signal!")); - } + //#3584 210817 LYW CF AOI Review �떆裕щ젅�씠�뀡 湲곕뒫 �젙�긽�솕 MOD START + if (GetSimulationMode() == FALSE) + { + SendResultToSignalControl(PCControlSendData_AlignResult_CPJT, SIGNAL_SEND_RESULT_SUCCESS); + m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::AlignStart] Send Align SUCCESS Data!")); + SendSignalToSignalControl(PCControlSendSignalIndex_Seq, PCControlSend_AlignComplete_CPJT); + m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::AlignStart] Send Align Complete Signal!")); + } + //#3584 210817 LYW CF AOI Review �떆裕щ젅�씠�뀡 湲곕뒫 �젙�긽�솕 MOD END + //original +// SendResultToSignalControl(PCControlSendData_AlignResult_CPJT, SIGNAL_SEND_RESULT_SUCCESS); +// m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::AlignStart] Send Align SUCCESS Data!")); +// SendSignalToSignalControl(PCControlSendSignalIndex_Seq, PCControlSend_AlignComplete_CPJT); +// m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::AlignStart] Send Align Complete Signal!")); + } + Sleep(350); + AlignCamera_CameraControl(CameraControlStop); // 210805 Align Camera Sequence 占쏙옙占쏙옙 //占쌍쇽옙 풀占쏙옙 // 4. send align fail signal to plc @@ -1272,7 +1392,7 @@ //m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::AlignStart] Send Align Fail Data!")); //SendSignalToSignalControl(PCControlSendSignalIndex_Seq, PCControlSend_AlignComplete_CPJT); //m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::AlignStart] Send Align Complete Signal!")); - } + } } @@ -1294,21 +1414,36 @@ m_pSP2P->ISP2P_GetSignalControl()->WriteData(_T("17110"), sizeof(pDitRawClient->GetGlassData()->m_strGlassJudge), pDitRawClient->GetGlassData()->m_strGlassJudge); m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::IN] ReadRawFile!")); - if (SendSignalToSignalControl(PCControlSendSignalIndex_Ack, PCControlSend_ReadRawFileAck_CPJT)) - m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::ReadRawFile] Send Read Raw File Ack!")); + //#3584 210817 LYW CF AOI Review �떆裕щ젅�씠�뀡 湲곕뒫 �젙�긽�솕 MOD START + if (GetSimulationMode() == FALSE) + { + if (SendSignalToSignalControl(PCControlSendSignalIndex_Ack, PCControlSend_ReadRawFileAck_CPJT)) + m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::ReadRawFile] Send Read Raw File Ack!")); + } + //#3584 210817 LYW CF AOI Review �떆裕щ젅�씠�뀡 湲곕뒫 �젙�긽�솕 MOD END + //original +// if (SendSignalToSignalControl(PCControlSendSignalIndex_Ack, PCControlSend_ReadRawFileAck_CPJT)) +// m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::ReadRawFile] Send Read Raw File Ack!")); if (bFileFind == FALSE) { - SendResultToSignalControl(PCControlSendData_ReviewResult_CPJT, SIGNAL_SEND_RESULT_FAIL); - m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::ReadRawFile] 占쏙옙占쏙옙占쏙옙占� 찾占쏙옙 占쏙옙占쏙옙")); + //#3584 210817 LYW CF AOI Review �떆裕щ젅�씠�뀡 湲곕뒫 �젙�긽�솕 MOD START + if (GetSimulationMode() == FALSE) + { + SendResultToSignalControl(PCControlSendData_ReviewResult_CPJT, SIGNAL_SEND_RESULT_FAIL); + m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::ReadRawFile] Find Raw File Fail")); + } + //#3584 210817 LYW CF AOI Review �떆裕щ젅�씠�뀡 湲곕뒫 �젙�긽�솕 MOD END + //original +// SendResultToSignalControl(PCControlSendData_ReviewResult_CPJT, SIGNAL_SEND_RESULT_FAIL); +// m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::ReadRawFile] Find Raw File Fail")); return; } // get current glass result CGlassResult* pGlassResult = m_pSP2P->ISP2P_GetCurrentGlassResult(); if (pGlassResult==NULL) return; - - //占쏙옙占쏙옙占쌨몌옙 커占쏙옙占� 占쏙옙占쏙옙 占쏙옙타트(占쌜띰옙 占싸듸옙) + CDitGlassRawClient* pDitSharedGlassRaw = CDitGlassRawClient::GetInstance(); if(pDitSharedGlassRaw->isConnect() == FALSE) m_pSP2P->ISP2P_DisplayMessage(_T("[DitGlassRawClient] Shared Memory Connect Fail")); @@ -1335,20 +1470,26 @@ int nTotalPlanCount = CalculatePlanData(pGlassResult); m_pSP2P->ISP2P_DisplayMessage(_T("[Read Raw File] Review All Plan Total Count : %d"), nTotalPlanCount); - //占쏙옙占쏙옙占쌩듸옙 Sleep(1000); // send review ready - SendResultToSignalControl(PCControlSendData_ReviewResult_CPJT, SIGNAL_SEND_RESULT_SUCCESS); - SendSignalToSignalControl(PCControlSendSignalIndex_Seq, PCControlSend_ReviewReady_CPJT); - m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::ReadRawFile] Send Review Ready Signal!")); + //#3584 210817 LYW CF AOI Review �떆裕щ젅�씠�뀡 湲곕뒫 �젙�긽�솕 MOD START + if (GetSimulationMode() == FALSE) + { + SendResultToSignalControl(PCControlSendData_ReviewResult_CPJT, SIGNAL_SEND_RESULT_SUCCESS); + SendSignalToSignalControl(PCControlSendSignalIndex_Seq, PCControlSend_ReviewReady_CPJT); + m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::ReadRawFile] Send Review Ready Signal!")); + } + //#3584 210817 LYW CF AOI Review �떆裕щ젅�씠�뀡 湲곕뒫 �젙�긽�솕 MOD END + //original +// SendResultToSignalControl(PCControlSendData_ReviewResult_CPJT, SIGNAL_SEND_RESULT_SUCCESS); +// SendSignalToSignalControl(PCControlSendSignalIndex_Seq, PCControlSend_ReviewReady_CPJT); +// m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::ReadRawFile] Send Review Ready Signal!")); } else { processTimer.End(); m_pSP2P->ISP2P_DisplayMessage(_T("[ReadRawFile] AOI Result File Read Fail![%.3f ms]"), processTimer.GetDurationMilliSecond()); - - //占쌓쏙옙트 占쏙옙占� //{ // // send review ready // SendResultToSignalControl(PCControlSendData_ReviewResult_CPJT, SIGNAL_SEND_RESULT_SUCCESS); @@ -1356,7 +1497,6 @@ // m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::ReadRawFile] Send Review Ready Signal!")); //} - //占쌍쇽옙 占쏙옙占쏙옙 int nCurPlanIndex = 0; CRsRcpReviewInfo* pRsRcpReviewInfo = m_pSP2P->ISP2P_Recipe_GetRsRcpReviewInfo(); if(pRsRcpReviewInfo) @@ -1371,15 +1511,21 @@ m_pSP2P->ISP2P_DisplayMessage(_T("[Read Raw File] Review All Plan Total Count : %d"), nTotalPlanCount); // send review ready - SendSignalToSignalControl(PCControlSendSignalIndex_Seq, PCControlSend_ReviewReady_CPJT); - m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::ReadRawFile] Send Review Ready Signal!")); + //#3584 210817 LYW CF AOI Review �떆裕щ젅�씠�뀡 湲곕뒫 �젙�긽�솕 MOD START + if (GetSimulationMode() == FALSE) + { + SendSignalToSignalControl(PCControlSendSignalIndex_Seq, PCControlSend_ReviewReady_CPJT); + m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::ReadRawFile] Send Review Ready Signal!")); + } + //#3584 210817 LYW CF AOI Review �떆裕щ젅�씠�뀡 湲곕뒫 �젙�긽�솕 MOD END + //original +// SendSignalToSignalControl(PCControlSendSignalIndex_Seq, PCControlSend_ReviewReady_CPJT); +// m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::ReadRawFile] Send Review Ready Signal!")); } } } } - //// [2017:5:24]-[WEZASW] : Review Image Upload Dir 占쏙옙占쏙옙.(FTPUploader占쏙옙占쏙옙 占쌘듸옙 占쏙옙占쏙옙 占실댐옙占쏙옙 占쏙옙占쏙옙 占쏙옙占쏙옙占� 占쏙옙占쏙옙) - //// '占쌥븝옙占싯삼옙'占쏙옙 FTPUploader占쏙옙占쏙옙 占쏙옙占싸듸옙 占쏙옙 占쏙옙占쏙옙 占쏙옙占쏙옙占쏙옙 PCControl Glass Unloading 占쏙옙 占쏙옙占� Loading占쏙옙 Review占쏙옙占쏙옙占쏙옙 占쏙옙占싸듸옙 占쏙옙占�(GlassID) 占쏙옙占쏙옙 占쏙옙占쏙옙 占쏙옙占쏙옙 const CNetworkInfo *pNetworkInfo = m_pSP2P->ISP2P_System_GetNetworkInfo(); CString strPath = _T(""); //if(pNetworkInfo && pNetworkInfo->m_strUploadImagePath.IsEmpty() == FALSE) @@ -1393,8 +1539,6 @@ CFileFind Uploadfile, RTMSUploadPath; if (CDitGlassRawClient::GetInstance()->GetGlassData() == NULL) return; - - //占쏙옙占싸듸옙 占쏙옙占쏙옙占쏙옙 占쏙옙占쏙옙占쏙옙 占쏙옙占쏙옙 占쏙옙占쏙옙占쏙옙 占쌕쏙옙 占쏙옙占싸듸옙 占쏙옙占� Set 20190917chm if(Uploadfile.FindFile(strPath)==FALSE) { CTime tmServerLoadingTime = CDitGlassRawClient::GetInstance()->GetGlassData()->m_tmGlassLoading; @@ -1402,10 +1546,6 @@ CreateDirectory(strPath, NULL); pReviewProcessor->SetUploadImagePath(strPath); - - - - //taek 210126 rtms 占쏙옙占쏙옙占� 占싱뱄옙占쏙옙 占쏙옙占쏙옙 占쏙옙占쏙옙 CreateDirectory(pReviewProcessor->GetRTMSUploadImagePath(),NULL); } @@ -1422,9 +1562,16 @@ SetLastPointCheck(FALSE); m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::IN] %d Tick Count"), dwTime); - - if (SendSignalToSignalControl(PCControlSendSignalIndex_Ack, PCControlSend_ReviewStartAck_CPJT)) - m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::ReviewStart] Send Review Start Ack!")); + //#3584 210817 LYW CF AOI Review �떆裕щ젅�씠�뀡 湲곕뒫 �젙�긽�솕 MOD START + if (GetSimulationMode() == FALSE) + { + if (SendSignalToSignalControl(PCControlSendSignalIndex_Ack, PCControlSend_ReviewStartAck_CPJT)) + m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::ReviewStart] Send Review Start Ack!")); + } + //#3584 210817 LYW CF AOI Review �떆裕щ젅�씠�뀡 湲곕뒫 �젙�긽�솕 MOD END + //original +// if (SendSignalToSignalControl(PCControlSendSignalIndex_Ack, PCControlSend_ReviewStartAck_CPJT)) +// m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::ReviewStart] Send Review Start Ack!")); const CRsRcpAlignInfo* pRsRcpAlignInfo = m_pSP2P->ISP2P_Recipe_GetRsRcpAlignInfo(); if(pRsRcpAlignInfo == NULL) return; @@ -1451,10 +1598,10 @@ // _grmCellData* pCellData = pDitRawClient->GetCellData(0); // if(pCellData) // { - // // pCellData->m_nTotalPitchData[0] = int(pTotapPithMeasure->GetTotalPitchBD() * 1000); // 占쏙옙占쏙옙, 占쌜억옙占쏙옙 占쏙옙占쏙옙 占쏙옙占쏙옙 - // // pCellData->m_nTotalPitchData[1] = int(pTotapPithMeasure->GetTotalPitchAC() * 1000); // 占쏙옙占쏙옙, 占쌜억옙占쏙옙 占쏙옙占쏙옙 占싣뤄옙占쏙옙 - // // pCellData->m_nTotalPitchData[2] = int(pTotapPithMeasure->GetTotalPitchAB() * 1000); // 占쏙옙占쏙옙, 占쌜억옙占쏙옙 占쏙옙占쏙옙 占쏙옙占쏙옙 - // // pCellData->m_nTotalPitchData[3] = int(pTotapPithMeasure->GetTotalPitchCD() * 1000); // 占쏙옙占쏙옙, 占쌜억옙占쏙옙 占쏙옙占쏙옙 占쏙옙占쏙옙占쏙옙 + // // pCellData->m_nTotalPitchData[0] = int(pTotapPithMeasure->GetTotalPitchBD() * 1000); + // // pCellData->m_nTotalPitchData[1] = int(pTotapPithMeasure->GetTotalPitchAC() * 1000); + // // pCellData->m_nTotalPitchData[2] = int(pTotapPithMeasure->GetTotalPitchAB() * 1000); + // // pCellData->m_nTotalPitchData[3] = int(pTotapPithMeasure->GetTotalPitchCD() * 1000); // } // } // } @@ -1462,7 +1609,6 @@ // { // m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor] TotalPitchMeasure Result Fail!")); - // // 190711 SJB, TotalPitchMeasure Fail占시울옙 占쌕뤄옙 Motor占쏙옙 占쏙옙占쏙옙占� 占쏙옙占쏙옙占쏙옙 占쏙옙占쌕댐옙 Motion Enable 占쏙옙호占쏙옙 확占쏙옙占쏙옙占쏙옙 // // if(!pTotapPithMeasure->GetMotorEnable()) // { @@ -1488,15 +1634,23 @@ if(FirstReviewPlanStart() <= 0) { //Sleep(1000); - SendResultToSignalControl(PCControlSendData_ReviewComplete_CPJT, SIGNAL_SEND_RESULT_SUCCESS); - SendSignalToSignalControl(PCControlSendSignalIndex_Seq, PCControlSend_ReviewComplete_CPJT); - m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::ReviewStart] Send Review Success Signal!")); + //#3584 210817 LYW CF AOI Review �떆裕щ젅�씠�뀡 湲곕뒫 �젙�긽�솕 MOD START + if (GetSimulationMode() == FALSE) + { + SendResultToSignalControl(PCControlSendData_ReviewComplete_CPJT, SIGNAL_SEND_RESULT_SUCCESS); + SendSignalToSignalControl(PCControlSendSignalIndex_Seq, PCControlSend_ReviewComplete_CPJT); + m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::ReviewStart] Send Review Success Signal!")); + } + //#3584 210817 LYW CF AOI Review �떆裕щ젅�씠�뀡 湲곕뒫 �젙�긽�솕 MOD END + //original +// SendResultToSignalControl(PCControlSendData_ReviewComplete_CPJT, SIGNAL_SEND_RESULT_SUCCESS); +// SendSignalToSignalControl(PCControlSendSignalIndex_Seq, PCControlSend_ReviewComplete_CPJT); +// m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::ReviewStart] Send Review Success Signal!")); } else { - //占쏙옙占쏙옙占쌩듸옙 + //Sleep(1000); - //Test占쏙옙占� //SendResultToSignalControl(PCControlSendData_ReviewComplete_CPJT, SIGNAL_SEND_RESULT_SUCCESS); //SendSignalToSignalControl(PCControlSendSignalIndex_Seq, PCControlSend_ReviewComplete_CPJT); //m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::ReviewStart] Send Review Success Signal!")); @@ -1514,8 +1668,16 @@ { m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::IN] ReviewEnd!")); - if (SendSignalToSignalControl(PCControlSendSignalIndex_Ack, PCControlSend_ReviewEndAck_CPJT)) - m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::ReviewEnd] Send Review End Ack!")); + //#3584 210817 LYW CF AOI Review �떆裕щ젅�씠�뀡 湲곕뒫 �젙�긽�솕 MOD START + if (GetSimulationMode() == FALSE) + { + if (SendSignalToSignalControl(PCControlSendSignalIndex_Ack, PCControlSend_ReviewEndAck_CPJT)) + m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::ReviewEnd] Send Review End Ack!")); + } + //#3584 210817 LYW CF AOI Review �떆裕щ젅�씠�뀡 湲곕뒫 �젙�긽�솕 MOD END + //original +// if (SendSignalToSignalControl(PCControlSendSignalIndex_Ack, PCControlSend_ReviewEndAck_CPJT)) +// m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::ReviewEnd] Send Review End Ack!")); CDitGlassRawClient* m_pDitGlassRaw = CDitGlassRawClient::GetInstance(); if (m_pSP2P->ISP2P_GetWSIControl(0)!=NULL) @@ -1536,16 +1698,22 @@ } m_pDitGlassRaw->GetGlassData()->m_nReviewNum = m_pSP2P->ISP2P_GetReviewProcessor()->GetPlanReviewCount(); - //SendDVDataToSignalControl();// 占싫억옙占쏙옙 - - //OverTime 占쌩삼옙占쏙옙 占쏙옙占쏘에占쏙옙 END ACK占쏙옙 占쏙옙摸占쏙옙째占� 占싣니띰옙 占쏙옙 Conplete占쏙옙 占쏙옙摸占쏙옙占�. - //占쏙옙 ... 占쏙옙占쏙옙 占쏙옙占쏙옙占싸듸옙占싹댐옙 占쌩곤옙 + //SendDVDataToSignalControl(); if (GetLastPointCheck() == FALSE) { - SendResultToSignalControl(PCControlSendData_ReviewResult_CPJT, SIGNAL_SEND_RESULT_SUCCESS); - SendSignalToSignalControl(PCControlSendSignalIndex_Seq, PCControlSend_ReviewComplete_CPJT); - m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::ReviewStart] Send Review Success Signal!")); + //#3584 210817 LYW CF AOI Review �떆裕щ젅�씠�뀡 湲곕뒫 �젙�긽�솕 MOD START + if (GetSimulationMode() == FALSE) + { + SendResultToSignalControl(PCControlSendData_ReviewResult_CPJT, SIGNAL_SEND_RESULT_SUCCESS); + SendSignalToSignalControl(PCControlSendSignalIndex_Seq, PCControlSend_ReviewComplete_CPJT); + m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::ReviewStart] Send Review Success Signal!")); + } + //#3584 210817 LYW CF AOI Review �떆裕щ젅�씠�뀡 湲곕뒫 �젙�긽�솕 MOD END + //original +// SendResultToSignalControl(PCControlSendData_ReviewResult_CPJT, SIGNAL_SEND_RESULT_SUCCESS); +// SendSignalToSignalControl(PCControlSendSignalIndex_Seq, PCControlSend_ReviewComplete_CPJT); +// m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::ReviewStart] Send Review Success Signal!")); } CGlassResult* pGlassResult = m_pSP2P->ISP2P_GetCurrentGlassResult(); @@ -1566,10 +1734,8 @@ m_pSP2P->ISP2P_GetWSIControl(0)->SendWsiAfmSafePosMove(); m_pSP2P->ISP2P_GetWSIControl(1)->SendWsiAfmSafePosMove(); } - // 占쏙옙占쏙옙占쏙옙占� 占쏙옙占쏙옙占쏙옙 Review占쏙옙占쏙옙 占쏙옙占쏙옙 占쏙옙占쏙옙 if(m_pDitGlassRaw->isConnect()==FALSE) WriteRawData(pGlassResult); - //占쏙옙占쏙옙커占쏙옙 占싯띰옙 send 20190819chm if(pGlassResult->m_nDeFocusCount >0) { SendSignalToSignalControl(PCControlSendSignalIndex_State,PCControlSend_Defoucs,1000); @@ -1579,8 +1745,8 @@ CString strTime = _T(""); strTime.Format(_T("%04d-%02d-%02d %02d:%02d:%02d"), time.GetYear(), time.GetMonth(), time.GetDay(), time.GetHour(), time.GetMinute(), time.GetSecond()); - CDlgDefocusList::GetInstance()->SetDefocusTotalCount(pGlassResult->m_nDeFocusCount);//占쏙옙탈 카占쏙옙트 Add - CDlgDefocusList::GetInstance()->SetDefocusData(strTime,pGlassResult->m_strGlassID,pGlassResult->m_nDeFocusCount);//ui 占쌩곤옙占쏙옙 占쏙옙占쏙옙 + CDlgDefocusList::GetInstance()->SetDefocusTotalCount(pGlassResult->m_nDeFocusCount); + CDlgDefocusList::GetInstance()->SetDefocusData(strTime,pGlassResult->m_strGlassID,pGlassResult->m_nDeFocusCount); } @@ -1594,26 +1760,34 @@ g_pLog->DisplayMessage(_T("History Button Enable")); m_pSP2P->ISP2P_GetDiagnosisHistory2(); - /*int nModuleCount = m_pSP2P->ISP2P_GetModuleStatusCount(); //0503 占쏙옙占쏙옙 End占쏙옙 占쏙옙占쏙옙占� 0占쏙옙占쏙옙 占십깍옙화 + /*int nModuleCount = m_pSP2P->ISP2P_GetModuleStatusCount(); for (int nModuleIdx = 0; nModuleIdx < nModuleCount; nModuleIdx++) { { ReviewLight_SetLightLevel(nModuleIdx, 0); - g_pLog->DisplayMessage(_T("Module[%d] LightLevel 占십깍옙화"), nModuleIdx); + g_pLog->DisplayMessage(_T("Module[%d] LightLevel"), nModuleIdx); } }*/ - //5. PCControl 占쏙옙호 占쏙옙占쏙옙占쏙옙트 + //5. PCControl if (pGlassResult) { m_pSP2P->ISP2P_UpdateProcessStatus(GetProcessStatus(), pGlassResult); g_pLog->DisplayMessage(_T("PCControl Update Signal")); } - SendResultToSignalControl(PCControlSendData_ReviewResultFileCreateComplete_CPJT, SIGNAL_SEND_RESULT_SUCCESS); - SendSignalToSignalControl(PCControlSendSignalIndex_Seq, PCControlSend_ResultDataComplete_CPJT); - m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::ReviewEnd] Send ResultData Complete Signal!")); + //#3584 210817 LYW CF AOI Review �떆裕щ젅�씠�뀡 湲곕뒫 �젙�긽�솕 MOD START + if (GetSimulationMode() == FALSE) + { + SendResultToSignalControl(PCControlSendData_ReviewResultFileCreateComplete_CPJT, SIGNAL_SEND_RESULT_SUCCESS); + SendSignalToSignalControl(PCControlSendSignalIndex_Seq, PCControlSend_ResultDataComplete_CPJT); + m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::ReviewEnd] Send ResultData Complete Signal!")); + } + //#3584 210817 LYW CF AOI Review �떆裕щ젅�씠�뀡 湲곕뒫 �젙�긽�솕 MOD END +// SendResultToSignalControl(PCControlSendData_ReviewResultFileCreateComplete_CPJT, SIGNAL_SEND_RESULT_SUCCESS); +// SendSignalToSignalControl(PCControlSendSignalIndex_Seq, PCControlSend_ResultDataComplete_CPJT); +// m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::ReviewEnd] Send ResultData Complete Signal!")); m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::OUT] ReviewEnd!")); } @@ -1621,9 +1795,16 @@ void CSequenceProcessor_CPJT::Process_ReviewUnloading() { m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::IN] Review Unloading!")); - - if (SendSignalToSignalControl(PCControlSendSignalIndex_Ack, PCControlSend_ReviewUnloadingAck_CPJT)) - m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::ReviewStart] Send Review Unloading Ack!")); + //#3584 210817 LYW CF AOI Review �떆裕щ젅�씠�뀡 湲곕뒫 �젙�긽�솕 MOD START + if (GetSimulationMode() == FALSE) + { + if (SendSignalToSignalControl(PCControlSendSignalIndex_Ack, PCControlSend_ReviewUnloadingAck_CPJT)) + m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::ReviewStart] Send Review Unloading Ack!")); + } + //original + //#3584 210817 LYW CF AOI Review �떆裕щ젅�씠�뀡 湲곕뒫 �젙�긽�솕 MOD END +// if (SendSignalToSignalControl(PCControlSendSignalIndex_Ack, PCControlSend_ReviewUnloadingAck_CPJT)) +// m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::ReviewStart] Send Review Unloading Ack!")); } @@ -1646,8 +1827,8 @@ CString strCode = _T(""); - int nDefectCount = pRawData->GetGlassData()->m_nDefectNum; // 占쏙옙占썲갯占쏙옙 - int nJudgeCount = pRcpReviewInfo->GetRcpZoneFilterInfoCount();// 占쏙옙占쏙옙 占쏙옙占쏙옙 + int nDefectCount = pRawData->GetGlassData()->m_nDefectNum; + int nJudgeCount = pRcpReviewInfo->GetRcpZoneFilterInfoCount(); int nFilterType = 0; int nJudgeType = 0; int nZoneNumber = 0; @@ -1661,7 +1842,7 @@ int nJudgeCellOKCount = 0; int nPixelSize = 0; int nPixelFilterSize = 0; - //占쏙옙占쏙옙 占쏙옙占쏙옙占쏙옙 + //1 wsi, 3 CS, 4 R, 5 G, 6 B //pRawData->GetDefectData(nDefectIdx)->m_ReviewDefect.m_fWsi_ResultData[1];//Defect //pRawData->GetDefectData(nDefectIdx)->m_ReviewDefect.m_fWsi_ResultData[3];//cs @@ -1675,10 +1856,10 @@ { -#pragma region 占쏙옙占쏙옙占� fail +#pragma region Align fail if (m_pSP2P->ISP2P_GetCurrentGlassResult()->GetAlignResult()->nResultCode != Align_Success) { - m_pSP2P->ISP2P_DisplayMessage(_T("[TEST Process::ReviewEnd] 占쏙옙占쏙옙占� 占쏙옙占쏙옙 WSI 占쏙옙占쏙옙 占쏙옙占쏙옙占쏙옙 占쏙옙占쏙옙 占쏙옙占쏙옙")); + m_pSP2P->ISP2P_DisplayMessage(_T("[TEST Process::ReviewEnd] Align Fail WSI Rejudge Cancel")); break; } #pragma endregion @@ -1716,7 +1897,7 @@ if (nPixelFilterSize <= nPixelSize && nPixelFilterSize != 0) { - m_pSP2P->ISP2P_DisplayMessage(_T("[ReviewEnd] 占쏙옙占쏙옙占쏙옙 占쏙옙占싶몌옙 Pixel Size[%d] nPixelFilterSize [%d]"), nPixelSize,nPixelFilterSize); + m_pSP2P->ISP2P_DisplayMessage(_T("[ReviewEnd] Size filtering Pixel Size[%d] nPixelFilterSize [%d]"), nPixelSize,nPixelFilterSize); continue; } #pragma endregion @@ -1726,13 +1907,13 @@ for (int nJudgeindex = 0; nJudgeindex < nJudgeCount; nJudgeindex++) { //nZoneType = GetZoneType(); - dJudgeHight = pRcpReviewInfo->GetRcpZoneFilteringInfo(nJudgeindex)->GetJudgeHeight(); //占쏙옙占쏙옙 + dJudgeHight = pRcpReviewInfo->GetRcpZoneFilteringInfo(nJudgeindex)->GetJudgeHeight(); nFilterType = pRcpReviewInfo->GetRcpZoneFilteringInfo(nJudgeindex)->m_nFilterType; //ZONE nJudge = pRcpReviewInfo->GetRcpZoneFilteringInfo(nJudgeindex)->m_nFilterJudge; //OK TR //nZoneNumber = pRcpReviewInfo->GetRcpZoneInfo(nFilterType)->m_vecZoneNumber[0]; - if (pRawData->GetDefectData(nDefectIdx)->m_ReviewDefect.m_nWsi_Type == 2) // 210330 kyh占쏙옙占쏙옙 + if (pRawData->GetDefectData(nDefectIdx)->m_ReviewDefect.m_nWsi_Type == 2) // 210330 kyh { BOOL isZoneValue = FALSE; @@ -1745,7 +1926,7 @@ } else { - m_pSP2P->ISP2P_DisplayMessage(_T("[WSIZoneCheck] Zone[%d], DefectIndex[%d]"), nZoneNumber, pRawData->GetDefectData(nDefectIdx)->m_nDefectIdx); //210330 kyh 占싸깍옙 占쌩곤옙 + m_pSP2P->ISP2P_DisplayMessage(_T("[WSIZoneCheck] Zone[%d], DefectIndex[%d]"), nZoneNumber, pRawData->GetDefectData(nDefectIdx)->m_nDefectIdx); //210330 kyh isZoneValue = TRUE; //break; @@ -1754,7 +1935,7 @@ if (isZoneValue == FALSE) { - m_pSP2P->ISP2P_DisplayMessage(_T("[WSIZoneCheck] NoFail DefectIndex[%d]"), pRawData->GetDefectData(nDefectIdx)->m_nDefectIdx); //210330 kyh 占싸깍옙 占쌩곤옙 + m_pSP2P->ISP2P_DisplayMessage(_T("[WSIZoneCheck] NoFail DefectIndex[%d]"), pRawData->GetDefectData(nDefectIdx)->m_nDefectIdx); //210330 kyh continue; } @@ -1804,13 +1985,13 @@ } } - else if (fWsiData<=0) // 0占쏙옙占쏙옙 占쏙옙占쏙옙 占쏙옙占쏙옙占쏙옙 占쏙옙占쏙옙占쏙옙 占쏙옙占싼댐옙. + else if (fWsiData<=0) { - m_pSP2P->ISP2P_DisplayMessage(_T("[TEST Process::ReviewEnd] WSI TYPE[%d] WSI 占쏙옙占쏙옙[%0.3lf] <= 0 占쏙옙占쏙옙 占쏙옙占쏙옙 占쏙옙占쏙옙"), nJudgeType, fWsiData); + m_pSP2P->ISP2P_DisplayMessage(_T("[TEST Process::ReviewEnd] WSI TYPE[%d] WSI Height[%0.3lf] <= 0 Cancel Rejudge"), nJudgeType, fWsiData); } else { - //20210419 TR 占쏙옙占쏙옙占쏙옙占쏙옙 Judge 占쏙옙占쏙옙 占쏙옙占쏙옙占쏙옙占� OK 占쏙옙占쏙옙 + //20210419 TR //if (nJudge == 1)//TR -> OK //{ if (pRawData->GetDefectData(nDefectIdx)->m_DefectJudgement == DEFECT_JUDGE_CPJT_OK || pRawData->GetDefectData(nDefectIdx)->m_DefectJudgement == DEFECT_JUDGE_CPJT_Unknown) @@ -1861,7 +2042,7 @@ } - else //WSI TYPE 占쏙옙 占싣니몌옙 + else //WSI TYPE { continue; } @@ -1875,13 +2056,13 @@ for (int nJudgeindex = 0; nJudgeindex < nJudgeCount; nJudgeindex++) { //nZoneType = GetZoneType(); - dJudgeHight = pRcpReviewInfo->GetRcpZoneFilteringInfo_PR(nJudgeindex)->GetJudgeHeight(); //占쏙옙占쏙옙 + dJudgeHight = pRcpReviewInfo->GetRcpZoneFilteringInfo_PR(nJudgeindex)->GetJudgeHeight(); nFilterType = pRcpReviewInfo->GetRcpZoneFilteringInfo_PR(nJudgeindex)->m_nFilterType; //ZONE nJudge = pRcpReviewInfo->GetRcpZoneFilteringInfo_PR(nJudgeindex)->m_nFilterJudge; //OK TR //nZoneNumber = pRcpReviewInfo->GetRcpZoneInfo(nFilterType)->m_vecZoneNumber[0]; - if (pRawData->GetDefectData(nDefectIdx)->m_ReviewDefect.m_nWsi_Type == 2) // 210330 kyh占쏙옙占쏙옙 + if (pRawData->GetDefectData(nDefectIdx)->m_ReviewDefect.m_nWsi_Type == 2) // 210330 { BOOL isZoneValue = FALSE; @@ -1894,7 +2075,7 @@ } else { - m_pSP2P->ISP2P_DisplayMessage(_T("[WSIZoneCheck] Zone[%d], DefectIndex[%d]"), nZoneNumber, pRawData->GetDefectData(nDefectIdx)->m_nDefectIdx); //210330 kyh 占싸깍옙 占쌩곤옙 + m_pSP2P->ISP2P_DisplayMessage(_T("[WSIZoneCheck] Zone[%d], DefectIndex[%d]"), nZoneNumber, pRawData->GetDefectData(nDefectIdx)->m_nDefectIdx); //210330 kyh isZoneValue = TRUE; //break; @@ -1903,7 +2084,7 @@ if (isZoneValue == FALSE) { - m_pSP2P->ISP2P_DisplayMessage(_T("[WSIZoneCheck] NoFail DefectIndex[%d]"), pRawData->GetDefectData(nDefectIdx)->m_nDefectIdx); //210330 kyh 占싸깍옙 占쌩곤옙 + m_pSP2P->ISP2P_DisplayMessage(_T("[WSIZoneCheck] NoFail DefectIndex[%d]"), pRawData->GetDefectData(nDefectIdx)->m_nDefectIdx); //210330 kyh continue; } @@ -1957,7 +2138,6 @@ } else { - //20210419 TR 占쏙옙占쏙옙占쏙옙占쏙옙 Judge 占쏙옙占쏙옙 占쏙옙占쏙옙占쏙옙占� OK 占쏙옙占쏙옙 //if (nJudge == 1)//TR -> OK //{ if (pRawData->GetDefectData(nDefectIdx)->m_DefectJudgement == DEFECT_JUDGE_CPJT_OK || pRawData->GetDefectData(nDefectIdx)->m_DefectJudgement == DEFECT_JUDGE_CPJT_Unknown) @@ -2009,7 +2189,7 @@ } - else //WSI TYPE 占쏙옙 占싣니몌옙 + else //WSI TYPE { continue; } @@ -2024,7 +2204,7 @@ strCode =pRcpReviewInfo->GetRcpZoneFilteringInfo_CODE(nJudgeindex)->m_FilterCode; - if (pRawData->GetDefectData(nDefectIdx)->m_ReviewDefect.m_nWsi_Type == 2) // 210330 kyh占쏙옙占쏙옙 + if (pRawData->GetDefectData(nDefectIdx)->m_ReviewDefect.m_nWsi_Type == 2) // 210330 { nJudgeType = ReJugdeWSIType(nFilterType); @@ -2077,7 +2257,7 @@ m_pSP2P->ISP2P_DisplayMessage(_T("[TEST Process::ReviewEnd] CODE JUDGE WSI TYPE[%d] Defect CODE [%s] != [%s]"), nJudgeType, strCode, pRawData->GetDefectData(nDefectIdx)->m_strDefectCode); } } - else //WSI TYPE 占쏙옙 占싣니몌옙 + else //WSI TYPE { continue; } @@ -2088,7 +2268,6 @@ } #pragma region CELLJUDGE - //CELL 占쏙옙占쏙옙占쏙옙//////////////////////////////////////////////////////////////// int nCellCount = pRawData->GetGlassData()->m_nCellNum; @@ -2107,7 +2286,7 @@ else if (pRawData->GetCellData(nCellIndex)->m_nJudgement == Judge_OK_CPJT) { nCelllOKJuge = nCelllOKJuge + 1; - } //taek 21.01.25 Juge 占쏙옙占싹댐옙 占쏙옙占쏙옙 占쏙옙占쌈곤옙 占쌕뀐옙占쏙옙... + } //taek 21.01.25 else if (pRawData->GetCellData(nCellIndex)->m_nJudgement == Judge_PR_CPJT) { nCelllPRJuge = nCelllPRJuge + 1; @@ -2151,7 +2330,7 @@ } else { - m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::ReviewEnd] 카占쏙옙트 占쏙옙占쏙옙占쏙옙 占쏙옙占쏙옙占쏙옙 [%02d]Cell DefectTRCount[%d] >= [%d]"), nCellIndex, pRawData->GetCellData(nCellIndex)->m_nDefectNumJudgeTR, pRcpJudgeInfo->GetJudgeCount()); + m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::ReviewEnd] Count Number is minus! [%02d]Cell DefectTRCount[%d] >= [%d]"), nCellIndex, pRawData->GetCellData(nCellIndex)->m_nDefectNumJudgeTR, pRcpJudgeInfo->GetJudgeCount()); } break; case JudgeType_T8_PR: @@ -2201,7 +2380,7 @@ } else { - m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::ReviewEnd] 카占쏙옙트 占쏙옙占쏙옙占쏙옙 占쏙옙占쏙옙占쏙옙 [%02d]Cell DefectTRCount[%d] <= [%d]"), nCellIndex, pRawData->GetCellData(nCellIndex)->m_nDefectNumJudgeTR, pRcpJudgeInfo->GetSubJudgeCount()); + m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::ReviewEnd] Count Number is minus! [%02d]Cell DefectTRCount[%d] <= [%d]"), nCellIndex, pRawData->GetCellData(nCellIndex)->m_nDefectNumJudgeTR, pRcpJudgeInfo->GetSubJudgeCount()); } break; case JudgeType_T8_PR: @@ -2365,7 +2544,7 @@ } m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::ReviewEnd] CELL COUNT OK:[%d] TR[%d] PR[%d]"), nCelllOKJuge, nCellTRJudge, nCelllPRJuge); #pragma endregion - //GLASS 占쏙옙占쏙옙占쏙옙//////////////////////////////////////////////////////////////// + #pragma region GLASSJUDGE CRsRcpReviewInfo* pRsRcpReviewInfo = m_pSP2P->ISP2P_Recipe_GetRsRcpReviewInfo(); if (pRsRcpReviewInfo == NULL) return FALSE; @@ -2413,7 +2592,7 @@ } else { - m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::ReviewEnd] TR 카占쏙옙트占쏙옙 占쏙옙占쏙옙占쏙옙 [%02d]GLASS Defect TR Count[%d] >= [%d]"), nIdx, pRawData->GetGlassData()->m_nDefectNumJudgeTR, pRcpJudgeInfo->GetJudgeCount()); + m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::ReviewEnd] TR Count is minus [%02d]GLASS Defect TR Count[%d] >= [%d]"), nIdx, pRawData->GetGlassData()->m_nDefectNumJudgeTR, pRcpJudgeInfo->GetJudgeCount()); } break; case JudgeType_T8_PR: @@ -2463,7 +2642,7 @@ } else { - m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::ReviewEnd]TR카占쏙옙트占쏙옙 占쏙옙占쏙옙占쏙옙 [%02d]GLASS Defect TR Count[%d] <= [%d]"), nIdx, pRawData->GetGlassData()->m_nDefectNumJudgeTR, pRcpJudgeInfo->GetSubJudgeCount()); + m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::ReviewEnd]TR Count is minus [%02d]GLASS Defect TR Count[%d] <= [%d]"), nIdx, pRawData->GetGlassData()->m_nDefectNumJudgeTR, pRcpJudgeInfo->GetSubJudgeCount()); } break; case JudgeType_T8_PR: @@ -2651,7 +2830,7 @@ CakFileUtil akFileFinder; while (nReTryTime--) { - //#3359_LYW CF AOI Review REVIEW_LOADING_COMPLETE_TIMEOVER 占싯띰옙 占쌩삼옙 占쏙옙占쏙옙 占싻쇽옙 START + //#3359_LYW CF AOI Review REVIEW_LOADING_COMPLETE_TIMEOVER START if (nReTryTime%2 == 0) { strFilePath = AOIRAWBIN_PATH; @@ -2660,9 +2839,9 @@ strWild.Format("%s\\%s_*.bin", strFilePath, strFileName); akFileFinder.FindFile(strWild.GetBuffer(0), FALSE); - //LYW LOG占쌩곤옙 + //LYW LOG g_pLog->DisplayMessage(_T("[GlassLoading][FindRawBinFile] Find Path = %s, RetryCount = %d, ResultCode = [%d]"), strFilePath, 30-nReTryTime, GetLastError()); - //#3359_LYW CF AOI Review REVIEW_LOADING_COMPLETE_TIMEOVER 占싯띰옙 占쌩삼옙 占쏙옙占쏙옙 占싻쇽옙 END + //#3359_LYW CF AOI Review REVIEW_LOADING_COMPLETE_TIMEOVER END VECFINDDATA* pFindData = akFileFinder.getFindData(); int nFileNamePos = strlen(akFileFinder.getProcessPath()); std::map<LONGLONG, CString> mapSpanFileName; @@ -2674,7 +2853,7 @@ parser.process(pFileName, "_."); if (parser.getTokNum() < 4) continue; - if (parser.getTokNum() >= 6) continue; // 0401 占쌩곤옙 + if (parser.getTokNum() >= 6) continue; // 0401 int nDataTime[8] = {}; { @@ -2702,7 +2881,6 @@ { if (mapSpanFileName.begin()->first < nCloseTime) { - //占쏙옙占쏙옙 占쌍깍옙 占쏙옙占쏙옙占쏙옙占� 찾占쏙옙 占쏙옙占쏙옙 [占쏙옙占쏙옙占쏙옙 2019/7/17] strFindFile = mapSpanFileName.begin()->second; break; } @@ -2762,7 +2940,7 @@ int nPCControlReadDataCount = pSignalInfo->GetReadDataAddressCount(); - // [2017:1:9]-[WEZASW] : PCControl GlassData 占쌓몌옙 占쏙옙占쏙옙占쏙옙. + // [2017:1:9]-[WEZASW] : PCControl GlassData if(pSignalInfo->GetUseContinuousReadAddress()) { CString strReadAddress = _T(""); @@ -3132,7 +3310,7 @@ strReadData = pTransferData->strRerferData; break; } - m_pSP2P->ISP2P_DisplayMessage(_T("[ReadTransferData] Name: %s, Addr: %s, Size: %d, Data: %s"), pInfo->strName, strReadAddress, nReadSize, strReadData); //0517 + // m_pSP2P->ISP2P_DisplayMessage(_T("[ReadTransferData] Name: %s, Addr: %s, Size: %d, Data: %s"), pInfo->strName, strReadAddress, nReadSize, strReadData); //0517 } } @@ -3141,11 +3319,11 @@ void CSequenceProcessor_CPJT::UpdateGlassResultFromTransferData(CGlassResult *pGlassResult, STransferData* pTransferData) { - m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::Loading] Transfer Data 占싻깍옙!")); + m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::Loading] Transfer Data Read!")); if (pGlassResult==NULL || pTransferData==NULL) return; - // [2017:1:9]-[WEZASW] : PCControl GlassData 占쌓몌옙 占쏙옙占쏙옙占쏙옙 + // [2017:1:9]-[WEZASW] : PCControl GlassData // transfer data is not exist if (pTransferData->strLotID.GetLength()<1) { @@ -3214,80 +3392,89 @@ pGlassResult->m_strPairFlag = pTransferData->strPairFlag; pGlassResult->m_strOptionValue = pTransferData->strOptionValue; pGlassResult->m_strReserved = pTransferData->strReserved; - pGlassResult->strGlassScanSchedule = pTransferData->strGlassScanSchedule;//占쏙옙占쏙옙 占쏙옙占쏙옙 cmark + pGlassResult->strGlassScanSchedule = pTransferData->strGlassScanSchedule;//cmark pGlassResult->m_strRTMSStepID = pTransferData->strStepID; //taek 210126 - m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::Loading] Transfer Data 占쏙옙!")); + m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::Loading] Transfer Data END!")); } void CSequenceProcessor_CPJT::UpdateHistoryResultFromTransferData(CGlassResult *pHistoryResult, CGlassResult* pGlassResult) { - if (pHistoryResult == NULL || pGlassResult == NULL) return; + try + { + if (pHistoryResult == NULL || pGlassResult == NULL) return; - CTime time = CTime::GetCurrentTime(); + CTime time = CTime::GetCurrentTime(); - CString strTime = _T(""); - strTime.Format(_T("%04d-%02d-%02d %02d:%02d:%02d"), time.GetYear(), time.GetMonth(), time.GetDay(), time.GetHour(), time.GetMinute(), time.GetSecond()); + CString strTime = _T(""); + strTime.Format(_T("%04d-%02d-%02d %02d:%02d:%02d"), time.GetYear(), time.GetMonth(), time.GetDay(), time.GetHour(), time.GetMinute(), time.GetSecond()); - // update transfer data to glass result - pHistoryResult->m_nGlassSizeX = pGlassResult->m_nGlassSizeX; - pHistoryResult->m_nGlassSizeY = pGlassResult->m_nGlassSizeY; - pHistoryResult->m_nCollisionDistanceX = pGlassResult->m_nCollisionDistanceX; - pHistoryResult->m_nCollisionDistanceY = pGlassResult->m_nCollisionDistanceY; - pHistoryResult->m_nCollisionXPos1 = pGlassResult->m_nCollisionXPos1; - pHistoryResult->m_nCollisionXPos2 = pGlassResult->m_nCollisionXPos2; - pHistoryResult->m_nOriginDir = pGlassResult->m_nOriginDir; - pHistoryResult->m_strResultDate = pGlassResult->m_strResultDate; - pHistoryResult->m_vecReviewScheduleResult = pGlassResult->m_vecReviewScheduleResult; - pHistoryResult->m_nCornerCutDir = pGlassResult->m_nCornerCutDir; - pHistoryResult->m_bReadRawFile = pGlassResult->m_bReadRawFile; - pHistoryResult->m_vecReviewResult = pGlassResult->m_vecReviewResult; - pHistoryResult->m_strGlassLastName = pGlassResult->m_strGlassLastName; - pHistoryResult->m_strGlassID = pGlassResult->m_strGlassID; - pHistoryResult->m_strGlassCode = pGlassResult->m_strGlassCode; - pHistoryResult->m_strMode = pGlassResult->m_strMode; - pHistoryResult->m_strGlassType = pGlassResult->m_strGlassType; - pHistoryResult->m_strDummyType = pGlassResult->m_strDummyType; - pHistoryResult->m_strProdID = pGlassResult->m_strProdID; - pHistoryResult->m_strOperID = pGlassResult->m_strOperID; - pHistoryResult->m_strLotID = pGlassResult->m_strLotID; - pHistoryResult->m_strPPID = pGlassResult->m_strPPID; - pHistoryResult->m_strPPID_RC = pGlassResult->m_strPPID_RC; - pHistoryResult->m_strJobType = pGlassResult->m_strJobType; - pHistoryResult->m_strJobID = pGlassResult->m_strJobID; - pHistoryResult->m_strLotSeqNum = pGlassResult->m_strLotSeqNum; - pHistoryResult->m_strSlotSeqNum = pGlassResult->m_strSlotSeqNum; - pHistoryResult->m_strPropertyCode = pGlassResult->m_strPropertyCode; - pHistoryResult->m_strJobJudgeCode = pGlassResult->m_strJobJudgeCode; - pHistoryResult->m_strJobGradeCode = pGlassResult->m_strJobGradeCode; - pHistoryResult->m_strSubstrateType = pGlassResult->m_strSubstrateType; - pHistoryResult->m_strProcessingFlag = pGlassResult->m_strProcessingFlag; - pHistoryResult->m_strInspectionFlag = pGlassResult->m_strInspectionFlag; - pHistoryResult->m_strSkipFlag = pGlassResult->m_strSkipFlag; - pHistoryResult->m_strJobSize = pGlassResult->m_strJobSize; - pHistoryResult->m_strGlassThickness = pGlassResult->m_strGlassThickness; - pHistoryResult->m_strJobAngle = pGlassResult->m_strJobAngle; - pHistoryResult->m_strJobFlip = pGlassResult->m_strJobFlip; - pHistoryResult->m_strCuttingGlassType = pGlassResult->m_strCuttingGlassType; - pHistoryResult->m_strProcessingCount = pGlassResult->m_strProcessingCount; - pHistoryResult->m_strInspectionJudgeData = pGlassResult->m_strInspectionJudgeData; - pHistoryResult->m_strPairJobID = pGlassResult->m_strPairJobID; - pHistoryResult->m_strPairFlag = pGlassResult->m_strPairFlag; - pHistoryResult->m_strOptionValue = pGlassResult->m_strOptionValue; - pHistoryResult->m_strReserved = pGlassResult->m_strReserved; - pHistoryResult->strGlassScanSchedule = pGlassResult->strGlassScanSchedule;//占쏙옙占쏙옙 占쏙옙占쏙옙 cmark - pHistoryResult->m_strStepID = pGlassResult->m_strRTMSStepID; //taek 210126 - pHistoryResult->m_strEquipID = pGlassResult->m_strEquipID; - pHistoryResult->m_strProcessID = pGlassResult->m_strProcessID; - pHistoryResult->m_strUploadImgFileName = pGlassResult->m_strUploadImgFileName; - pHistoryResult->m_strUnLoadingTime = strTime; - pHistoryResult->m_mapDefectResult = pGlassResult->m_mapDefectResult; - pHistoryResult->m_AlignResult = pGlassResult->m_AlignResult; + // update transfer data to glass result + pHistoryResult->m_nGlassSizeX = pGlassResult->m_nGlassSizeX; + pHistoryResult->m_nGlassSizeY = pGlassResult->m_nGlassSizeY; + pHistoryResult->m_nCollisionDistanceX = pGlassResult->m_nCollisionDistanceX; + pHistoryResult->m_nCollisionDistanceY = pGlassResult->m_nCollisionDistanceY; + pHistoryResult->m_nCollisionXPos1 = pGlassResult->m_nCollisionXPos1; + pHistoryResult->m_nCollisionXPos2 = pGlassResult->m_nCollisionXPos2; + pHistoryResult->m_nOriginDir = pGlassResult->m_nOriginDir; + pHistoryResult->m_strResultDate = pGlassResult->m_strResultDate; + pHistoryResult->m_vecReviewScheduleResult = pGlassResult->m_vecReviewScheduleResult; + pHistoryResult->m_nCornerCutDir = pGlassResult->m_nCornerCutDir; + pHistoryResult->m_bReadRawFile = pGlassResult->m_bReadRawFile; + pHistoryResult->m_vecReviewResult = pGlassResult->m_vecReviewResult; + pHistoryResult->m_strGlassLastName = pGlassResult->m_strGlassLastName; + pHistoryResult->m_strGlassID = pGlassResult->m_strGlassID; + pHistoryResult->m_strGlassCode = pGlassResult->m_strGlassCode; + pHistoryResult->m_strMode = pGlassResult->m_strMode; + pHistoryResult->m_strGlassType = pGlassResult->m_strGlassType; + pHistoryResult->m_strDummyType = pGlassResult->m_strDummyType; + pHistoryResult->m_strProdID = pGlassResult->m_strProdID; + pHistoryResult->m_strOperID = pGlassResult->m_strOperID; + pHistoryResult->m_strLotID = pGlassResult->m_strLotID; + pHistoryResult->m_strPPID = pGlassResult->m_strPPID; + pHistoryResult->m_strPPID_RC = pGlassResult->m_strPPID_RC; + pHistoryResult->m_strJobType = pGlassResult->m_strJobType; + pHistoryResult->m_strJobID = pGlassResult->m_strJobID; + pHistoryResult->m_strLotSeqNum = pGlassResult->m_strLotSeqNum; + pHistoryResult->m_strSlotSeqNum = pGlassResult->m_strSlotSeqNum; + pHistoryResult->m_strPropertyCode = pGlassResult->m_strPropertyCode; + pHistoryResult->m_strJobJudgeCode = pGlassResult->m_strJobJudgeCode; + pHistoryResult->m_strJobGradeCode = pGlassResult->m_strJobGradeCode; + pHistoryResult->m_strSubstrateType = pGlassResult->m_strSubstrateType; + pHistoryResult->m_strProcessingFlag = pGlassResult->m_strProcessingFlag; + pHistoryResult->m_strInspectionFlag = pGlassResult->m_strInspectionFlag; + pHistoryResult->m_strSkipFlag = pGlassResult->m_strSkipFlag; + pHistoryResult->m_strJobSize = pGlassResult->m_strJobSize; + pHistoryResult->m_strGlassThickness = pGlassResult->m_strGlassThickness; + pHistoryResult->m_strJobAngle = pGlassResult->m_strJobAngle; + pHistoryResult->m_strJobFlip = pGlassResult->m_strJobFlip; + pHistoryResult->m_strCuttingGlassType = pGlassResult->m_strCuttingGlassType; + pHistoryResult->m_strProcessingCount = pGlassResult->m_strProcessingCount; + pHistoryResult->m_strInspectionJudgeData = pGlassResult->m_strInspectionJudgeData; + pHistoryResult->m_strPairJobID = pGlassResult->m_strPairJobID; + pHistoryResult->m_strPairFlag = pGlassResult->m_strPairFlag; + pHistoryResult->m_strOptionValue = pGlassResult->m_strOptionValue; + pHistoryResult->m_strReserved = pGlassResult->m_strReserved; + pHistoryResult->strGlassScanSchedule = pGlassResult->strGlassScanSchedule;// cmark + pHistoryResult->m_strStepID = pGlassResult->m_strRTMSStepID; //taek 210126 + pHistoryResult->m_strEquipID = pGlassResult->m_strEquipID; + pHistoryResult->m_strProcessID = pGlassResult->m_strProcessID; + pHistoryResult->m_strUploadImgFileName = pGlassResult->m_strUploadImgFileName; + pHistoryResult->m_strUnLoadingTime = strTime; + pHistoryResult->m_mapDefectResult = pGlassResult->m_mapDefectResult; + pHistoryResult->m_AlignResult = pGlassResult->m_AlignResult; + } + catch (...) + { + m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::Review End] UpdateHistoryResultFromTransferData Error")); + return; + } + } void CSequenceProcessor_CPJT::CreateResultDirectory(const CString& strGlassID, const CString& strDate) { - m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::Loading] 占쏙옙占썰리 占쏙옙占쏙옙占� 占쏙옙占쏙옙")); + m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::Loading] Make Directory Start")); if (m_pSP2P==NULL) return; const CNetworkInfo *pNetworkInfo = m_pSP2P->ISP2P_System_GetNetworkInfo(); @@ -3333,7 +3520,7 @@ strPath.Format(_T("%s\\%s"),pNetworkInfo->m_strAlignImagePath, strGlassID); CreateDirectory(strPath, NULL); } - m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::Loading] 占쏙옙占썰리 占쏙옙占쏙옙占� 占쏙옙")); + m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::Loading] Make directory End")); } @@ -3341,7 +3528,7 @@ void CSequenceProcessor_CPJT::SetSaveImageBasePathToReviewProcessor(const CString& strGlassID, const CString& strResultDate) { - m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::Loading] 占싱뱄옙占쏙옙 占싻쏙옙 占쏙옙占쏙옙占� 占쏙옙占쏙옙")); + m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::Loading] Make image path start")); const CNetworkInfo *pNetworkInfo = m_pSP2P->ISP2P_System_GetNetworkInfo(); if(pNetworkInfo == NULL) return; @@ -3386,11 +3573,11 @@ Sleep(1000); if (CDitGlassRawClient::GetInstance()->isConnect() == FALSE) { - m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::GlassLoading]占쏙옙占쏙옙占쌨몌옙 占쏙옙占쏙옙 占쏙옙占쏙옙 Count[%d]"), nReconnect); + m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::GlassLoading]access Shared Memory Fail!! Count[%d]"), nReconnect); } else { - m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::GlassLoading]占쏙옙占쏙옙占쌨몌옙 占쏙옙占쏙옙 占쏙옙占쏙옙")); + m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::GlassLoading]access Shared Memory Success")); break; } nReconnect += 1; @@ -3413,7 +3600,7 @@ else { tmServerLoadingTime = CTime::GetCurrentTime(); - m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::GlassLoading] 占쏙옙占쏙옙占쌨몌옙 占쏙옙占쏙옙占싱삼옙")); + m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::GlassLoading] access Shared Memory Fail")); strPath.Format(_T("%s\\%s_%04d%02d%02d%02d%02d%02d"), pNetworkInfo->m_strUploadImagePath, strGlassID, tmServerLoadingTime.GetYear(), tmServerLoadingTime.GetMonth(), tmServerLoadingTime.GetDay(), tmServerLoadingTime.GetHour(), tmServerLoadingTime.GetMinute(), tmServerLoadingTime.GetSecond()); strImagePath.Format(_T("%s\\%s_%04d%02d%02d%02d%02d%02d"), strGlassID, tmServerLoadingTime.GetYear(), tmServerLoadingTime.GetMonth(), tmServerLoadingTime.GetDay(), tmServerLoadingTime.GetHour(), tmServerLoadingTime.GetMinute(), tmServerLoadingTime.GetSecond()); CreateDirectory(strPath, NULL); @@ -3422,12 +3609,12 @@ } } - m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::Loading] 占싱뱄옙占쏙옙 占싻쏙옙 占쏙옙占쏙옙占� 占쏙옙")); + m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::Loading] Make image path End")); } void CSequenceProcessor_CPJT::SetSaveImageBasePathToAlignCameraControl(const CString& strGlassID) { - m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::Loading] 占쏙옙占쏙옙占� 占싱뱄옙占쏙옙 占싻쏙옙 占쏙옙占쏙옙 ")); + m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::Loading] Make Align image path Start")); const CNetworkInfo *pNetworkInfo = m_pSP2P->ISP2P_System_GetNetworkInfo(); if(pNetworkInfo == NULL) return; @@ -3440,7 +3627,7 @@ strPath.Format(_T("%s\\%s"), pNetworkInfo->m_strAlignImagePath, strGlassID); pAlignCameraControl->SetSaveImageBasePath(strPath); } - m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::Loading] 占쏙옙占쏙옙占� 占싱뱄옙占쏙옙 占싻쏙옙 占쏙옙 ")); + m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::Loading] Make Align image path End ")); } BOOL CSequenceProcessor_CPJT::ReadRecipeDataFromRecipeFile(const CString& strPPID_RC, CString& strRecipeName)// const CString& strPPID, CString& strRecipeName @@ -3507,14 +3694,12 @@ { if(pGlassResult == NULL) return FALSE; - // 占쏙옙占쏙옙占쏙옙 占쏙옙占쏙옙 const CRsRcpReviewInfo* pRsRcpReviewInfo = m_pSP2P->ISP2P_Recipe_GetRsRcpReviewInfo(); if (pRsRcpReviewInfo==NULL) return FALSE; // system info const CSystemInfo* pSystemInfo = m_pSP2P->ISP2P_System_GetSystemInfo(); - // 占쌜띰옙 占쏙옙占쏙옙 STransferData* pTransferData = m_pSP2P->ISP2P_GetCurrentTransferData(); if (pTransferData==NULL) return FALSE; int nGlassTypeInfoIndex = 0; @@ -3530,20 +3715,16 @@ if (pGlassTypeInfo == NULL) return FALSE; m_pSP2P->ISP2P_DisplayMessage(_T("GlassTypeName : %s,GlassTypeIdx : %s"),pGlassTypeInfo->m_strGlassTypeName,pTransferData->strGlassScanSchedule); - // 占쏙옙占쏙옙 占쏙옙占쏙옙 const CMotorControlInfo *pMotorInfo = m_pSP2P->ISP2P_System_GetMotorInfo(); - // 占쏙옙표 占쏙옙환占쏙옙 CCoordCalibrator* pCoordCalibrator = m_pSP2P->ISP2P_GetCoordCalibrator(); - // 占쏙옙표占쏙옙 占쏙옙占쏙옙 if (pSystemInfo && pGlassTypeInfo && pMotorInfo && pCoordCalibrator) { // Get Direction int nDirectionX = GetDirectionX(pGlassTypeInfo->m_nOriginDirection, pMotorInfo->GetOriginDirection()); int nDirectionY = GetDirectionY(pGlassTypeInfo->m_nOriginDirection, pMotorInfo->GetOriginDirection()); - // 占쏙옙표占쏙옙 占쏙옙占쏙옙 pCoordCalibrator->SetTransDirection(nDirectionX, nDirectionY); pCoordCalibrator->SetOriginMotorPosition(pGlassTypeInfo->m_dOriginMotorX, pGlassTypeInfo->m_dOriginMotorY); if (fabs(pGlassTypeInfo->m_dAlignAngle) > 0.0000001) @@ -3552,7 +3733,6 @@ pGlassTypeInfo->m_dFirstAlignGlassX, pGlassTypeInfo->m_dFirstAlignGlassY, pGlassTypeInfo->m_dAlignAngle); } - // 占쌜띰옙 占쏙옙占쏙옙 占쏙옙占쏙옙 pGlassResult->SetGlassSize(pGlassTypeInfo->m_nGlassSizeX * 1000, pGlassTypeInfo->m_nGlassSizeY * 1000); pGlassResult->SetGlassOriginDirection(pGlassTypeInfo->m_nOriginDirection); pGlassResult->SetCornerCutDirection(pGlassTypeInfo->m_nCornerCutDirection); @@ -3561,34 +3741,28 @@ pGlassResult->SetCollisionDistanceX(int(pSystemInfo->m_dCollisionDistance*1000.)); } - // Align 占쏙옙占쏙옙 const CRsRcpAlignInfo* pRsRcpAlignInfo = m_pSP2P->ISP2P_Recipe_GetRsRcpAlignInfo(); - // Align 占쏙옙占쏙옙 占쏙옙占쏙옙 if (pGlassTypeInfo && pRsRcpAlignInfo) { - // Align 占쏙옙크 占쏙옙占쏙옙 占쏙옙占쏙옙 (占싫쇽옙, 占쏙옙占쏙옙, 占쌜띰옙 占쏙옙치) pGlassResult->m_AlignRecipe.m_nUseAlignPosMove = pGlassTypeInfo->m_nUseAlignPosMove; - // 占싫쇽옙 占쏙옙치 pGlassResult->m_AlignRecipe.dOriginPixelX[0] = pGlassTypeInfo->m_nFirstAlignFindPixelX; pGlassResult->m_AlignRecipe.dOriginPixelY[0] = pGlassTypeInfo->m_nFirstAlignFindPixelY; pGlassResult->m_AlignRecipe.dOriginPixelX[1] = pGlassTypeInfo->m_nSecondAlignFindPixelX; pGlassResult->m_AlignRecipe.dOriginPixelY[1] = pGlassTypeInfo->m_nSecondAlignFindPixelY; - // 占쏙옙占쏙옙 占쏙옙치 pGlassResult->m_AlignRecipe.dOriginPositionX[0] = pGlassTypeInfo->m_dFirstAlignMotorX; pGlassResult->m_AlignRecipe.dOriginPositionY[0] = pGlassTypeInfo->m_dFirstAlignMotorY; pGlassResult->m_AlignRecipe.dOriginPositionX[1] = pGlassTypeInfo->m_dSecondAlignMotorX; pGlassResult->m_AlignRecipe.dOriginPositionY[1] = pGlassTypeInfo->m_dSecondAlignMotorY; - // 占쌜띰옙 占쏙옙치 pGlassResult->m_AlignRecipe.dGlassPositionX[0] = pGlassTypeInfo->m_dFirstAlignGlassX; pGlassResult->m_AlignRecipe.dGlassPositionY[0] = pGlassTypeInfo->m_dFirstAlignGlassY; pGlassResult->m_AlignRecipe.dGlassPositionX[1] = pGlassTypeInfo->m_dSecondAlignGlassX; pGlassResult->m_AlignRecipe.dGlassPositionY[1] = pGlassTypeInfo->m_dSecondAlignGlassY; - // Align Recipe 占쏙옙占쏙옙 占쏙옙占쏙옙 占쌘듸옙占쏙옙占쏙옙 찾占쏙옙 占식띰옙占쏙옙占� + // Align Recipe // Align Skip Mode pGlassResult->m_AlignRecipe.bAlignSkipMode = pRsRcpAlignInfo->m_bAlignSkipMode; pGlassResult->m_AlignRecipe.bUseTotalPitchMeasure = pRsRcpAlignInfo->m_bTotalPitchMeasure; @@ -3608,29 +3782,24 @@ pGlassResult->m_AlignRecipe.nMergeRange = pRsRcpAlignInfo->m_nMergeRange; pGlassResult->m_AlignRecipe.dEdgeRate = pRsRcpAlignInfo->m_dEdgeRate; - // 占쏙옙占쏙옙챨占� pGlassResult->m_AlignRecipe.bManualProcess = pRsRcpAlignInfo->m_bManualProcess; pGlassResult->m_AlignRecipe.dFirstCamExposure = pRsRcpAlignInfo->m_dFirstCamExposure; pGlassResult->m_AlignRecipe.dSecondCamExposure = pRsRcpAlignInfo->m_dSecondCamExposure; - // 占쌘듸옙占쏙옙占쏙옙 占쏙옙占쏙옙 pGlassResult->m_AlignRecipe.bAutoProcess = pRsRcpAlignInfo->m_bAutoProcess; pGlassResult->m_AlignRecipe.dTargetMin = pRsRcpAlignInfo->m_dTargetMin; pGlassResult->m_AlignRecipe.dTargetMax = pRsRcpAlignInfo->m_dTargetMax; pGlassResult->m_AlignRecipe.dExposureMin = pRsRcpAlignInfo->m_dExposureMin; pGlassResult->m_AlignRecipe.dExposureMax = pRsRcpAlignInfo->m_dExposureMax; - // Align Recipe 占쏙옙占쏙옙 占쏙옙占쏙옙 rotate info pGlassResult->m_AlignRecipe.bRotateProcess = pRsRcpAlignInfo->m_bRotateProcess; pGlassResult->m_AlignRecipe.nRetryCount = pRsRcpAlignInfo->m_nRetryCount; pGlassResult->m_AlignRecipe.dGlassAngleMin = pRsRcpAlignInfo->m_dGlassAngleMin; pGlassResult->m_AlignRecipe.dGlassAngleMax = pRsRcpAlignInfo->m_dGlassAngleMax; - - // Align 카占쌨띰옙 占쏙옙占쏙옙 占쏙옙 占쌔삼옙 占쏙옙占쏙옙 + int nAlignCameraInfoCount = 2; for(int nAlignCameraIdx = 0; nAlignCameraIdx < nAlignCameraInfoCount; nAlignCameraIdx++) { - // Align 占쏙옙占쏙옙 占쏙옙 占쏙옙占쏙옙占쏙옙占쏙옙. int nLightValue = 0; @@ -3638,10 +3807,8 @@ { nLightValue = (nAlignCameraIdx==0) ? (int)pRsRcpAlignInfo->m_dFirstCamExposure: (int)pRsRcpAlignInfo->m_dSecondCamExposure; - // 占쏙옙占쏙옙占� 카占쌨띰옙 占쏙옙占쏙옙 占쏙옙占쏙옙占쏙옙占쏙옙 const CAlignCameraInfo *pCameraInfo = m_pSP2P->ISP2P_System_GetAlignCameraInfo(nAlignCameraIdx); - //占쏙옙占쏙옙占� 占쏙옙占쏙옙. CLightControl *pLightControl = NULL; const CLightControlInfo *AlignLightinfo = pCameraInfo->GetLightContorlInfo(); @@ -3650,8 +3817,6 @@ { if (AlignLightinfo->GetMaster()==1&& nAlignCameraIdx==1) { - //占쏙옙占쏙옙占� 占쏙옙틀占싼뤄옙占쏙옙 占싹놂옙占쏙옙 占쏙옙占쏙옙퓸占� 占쏙옙占쏙옙占쏙옙 占쏙옙占쏙옙占쏙옙 占쏙옙占싸뤄옙 확占쏙옙 - //占쏙옙占쏙옙占쏙옙 占싱곤옙 占승댐옙占쏙옙 占쏜르겟댐옙 占싣뱄옙占쏙옙 占싫알뤄옙占쏙옙 pLightControl = m_pSP2P->ISP2P_GetAlignLightControl(0); } @@ -3685,8 +3850,6 @@ } } - - // 占쏙옙占쏙옙占� 카占쌨띰옙 占쏙옙占쏙옙 占쏙옙占쏙옙占쏙옙占쏙옙 const CAlignCameraInfo *pCameraInfo = m_pSP2P->ISP2P_System_GetAlignCameraInfo(nAlignCameraIdx); if (pCameraInfo) { @@ -3714,7 +3877,6 @@ } } - // 占쏙옙占쏙옙占� 占쏙옙占시몌옙 占쏙옙占쏙옙 占쏙옙占쏙옙占쏙옙占쏙옙 if((int)pGlassTypeInfo->m_vecTemplateImagePath.size() == nAlignCameraInfoCount) { pGlassResult->m_AlignRecipe.strTemplateName[nAlignCameraIdx] = pGlassTypeInfo->m_vecTemplateImagePath[nAlignCameraIdx]; @@ -3743,14 +3905,13 @@ if (pRcpReviewAFMInfo) { int nRealAFMIndex = pRcpReviewAFMInfo->m_nRecipeIndex; - if(nRealAFMIndex == -1)// 占쏙옙占쏙옙占실울옙 占쏙옙占시듸옙 占쏙옙占쏙옙占쏙옙 占쏙옙占쏙옙 MagnificInfo Index占쏙옙 占싯아울옙 + if(nRealAFMIndex == -1) { - //-1占쏙옙 占쏙옙占� 占쏙옙占쏙옙 占싸듸옙占쏙옙 占쏙옙占쏙옙占쏙옙 占쏙옙. nRealAFMIndex = GetRealMagnification(nModuleIdx, pRcpReviewAFMInfo->m_nZoomIndex); } AFM_SetAFMRecipeName(nModuleIdx, strRecipeName, nRealAFMIndex); - if(pRcpReviewAFMInfo->m_bAFMHomeOffMode==TRUE) //190618AFM홈 占쏙옙占쏙옙占쏙옙 占쏙옙占쏙옙 X + if(pRcpReviewAFMInfo->m_bAFMHomeOffMode==TRUE) //190618AFM { SetUseAfmHomePosition(FALSE); } @@ -3762,7 +3923,6 @@ } } - // 占쏙옙占쏙옙 찾占쏙옙 占쏙옙占쏙옙占쏙옙 占쏙옙占쏙옙 CReviewProcessor* pReviewProcessor = m_pSP2P->ISP2P_GetReviewProcessor(); const CRsRcpDefectFindInfo* pRsRcpDefectFindInfo = m_pSP2P->ISP2P_Recipe_GetRsRcpDefectFindInfo(); if(pReviewProcessor && pRsRcpDefectFindInfo) @@ -3813,7 +3973,6 @@ CString strRawTDPath=_T(""), strRawCDPath=_T(""), strRawSDPath=_T(""); - // 占쏙옙占쏙옙占쏙옙占� 占싱몌옙 찾占쏙옙 FindAOIRawFilePath(pGlassResult, &strRawTDPath, &strRawCDPath, &strRawSDPath); bRet = m_pSP2P->ISP2P_ReadAOIRawFileToGlassResult(strRawTDPath); @@ -3867,7 +4026,7 @@ if(finder.IsDots()) continue; if(finder.IsDirectory()) continue; - // [2017:5:16]-[WEZASW] : AOI Server占쏙옙 占쏙옙占쏙옙 占쏙옙占쏙옙 占쏙옙치占쏙옙 占쏙옙占쌉몌옙 占싱뱄옙占쏙옙 占쏙옙占쏙옙 占쏙옙占쏙옙占� 占쏙옙占쏙옙 占쏙옙占싹몌옙 占쏙옙占쏙옙 + // [2017:5:16]-[WEZASW] : AOI Server sRawFile.strFileName = finder.GetFileName(); strExtTemp = sRawFile.strFileName; int nIdx = strExtTemp.Remove('.'); @@ -4045,7 +4204,6 @@ CModuleStatus* pModuleStatus = Module_GetModuleStatus(nModuleIdx); if (pModuleStatus == NULL) continue; - //占썸돌占신몌옙 占쌍깍옙 { double dCollisionPosX = pReviewResult->GetCollisionPositionX() / 1000.0; @@ -4086,13 +4244,12 @@ } - //占승울옙 占쏙옙트占쏙옙 占쏙옙占쏙옙占싱듸옙 pMotorControl->GantrySetTwoGantrySyncModeSend(0); // set result index int nStartIdx = pReviewResult->GetStartSReviewResultIndex(); int nEndIdx = pReviewResult->GetEndSReviewResultIndex(); - nEndIdx = min(nEndIdx, (pReviewResult->GetSReviewResultCount()-1)) + 1; // End Index 占쌕시쇽옙占쏙옙 + nEndIdx = min(nEndIdx, (pReviewResult->GetSReviewResultCount()-1)) + 1; // End Index double xpostemp, ypostemp; // get review pos @@ -4102,7 +4259,7 @@ SReviewResult* pReview = pReviewResult->GetSReviewResult(nResultIdx); if (pReview==NULL) continue; - //200占쏙옙 占쏙옙藥뱄옙占쏙옙占� 占쏙옙占쏙옙占쏙옙 占싹뤄옙占쏙옙占쏙옙占쏙옙占� 占쌩븝옙체크 + //200 if (pReview->bCheckSendToMotor == FALSE) { pReview->bCheckSendToMotor = TRUE; @@ -4149,7 +4306,6 @@ } } - //占쏙옙占쏙옙 占쏙옙占쏙옙트占쏙옙 占쌍댐옙占쏙옙 占쏙옙占쏙옙占쏙옙 체크 if (vectorPosX.empty() ==TRUE) { g_pLog->DisplayMessage(_T("[GantryAutoGo] No Exist Send Point "), vectorPosX.size()); @@ -4181,13 +4337,11 @@ int nTickCount = GetTickCount(); while (1) { - //5占쏙옙 占쏙옙占쏙옙타占쏙옙 if ((GetTickCount() - nTickCount) > 5000) { bOverTime = TRUE; break; } - //占쏙옙占쏙옙 占쏙옙占� End 체크 if (pMotorControl->IsGantryMotionEnd(pModuleStatus->GetGantryIndex()) == TRUE) { if (pMotorControl->GantryAutoGo(pModuleStatus->GetGantryIndex(), vectorPosX, vectorPosY, TRUE)) @@ -4206,15 +4360,12 @@ } - //5占쏙옙占식울옙占쏙옙 占싫울옙占쏙옙占싸댐옙? 占쌓뤄옙 3占쏙옙 占쏙옙천占� 占쏙옙占쏙옙 - //占쏙옙占폜nd 占쏙옙 占쌩몌옙 占쏙옙占시쇽옙占쏙옙 占쏙옙占쏙옙占쏙옙 if (bOverTime == TRUE) { for (int i = 0; i < 3; i++) { Sleep(1000); - //占쏙옙占싶곤옙 占쏙옙占쏙옙占싹쇽옙 占쏙옙占승삼옙占쏙옙占싹띰옙 Send 占쏙옙호占쏙옙 Fail 占쌩삼옙 占쏙옙占쏙옙 Retry 3占쏙옙 占쏙옙占쏙옙 if (pMotorControl->GantryAutoGo(pModuleStatus->GetGantryIndex(), vectorPosX, vectorPosY, TRUE)) { nTotalCount += (int)vectorPosX.size(); @@ -4288,7 +4439,7 @@ if(pGlassResult && pReviewProcessor) { // UserStart - pReviewProcessor->SetJobID(pGlassResult->m_strJobID); //pGlassResult->m_strGlassID -> pGlassResult->m_strJobID 占쏙옙占쏙옙 + pReviewProcessor->SetJobID(pGlassResult->m_strJobID); //pGlassResult->m_strGlassID -> pGlassResult->m_strJobID pReviewProcessor->SetOperID(pGlassResult->m_strOperID); m_pSP2P->ISP2P_UpdateReviewProcessStatus(ReviewProcessStatus_UserStart, nPlanIndex); @@ -4351,7 +4502,6 @@ CModuleStatus* pModuleStatus = Module_GetModuleStatus(nModuleIdx); if (pModuleStatus == NULL) continue; - //占썸돌占신몌옙 占쌍깍옙 { double dCollisionPosX = pReviewResult->GetCollisionPositionX() / 1000.0; @@ -4394,9 +4544,9 @@ // set result index int nStartIdx = pReviewResult->GetStartSReviewResultIndex(); int nEndIdx = pReviewResult->GetEndSReviewResultIndex(); - nEndIdx = min(nEndIdx, (pReviewResult->GetSReviewResultCount() - 1)) + 1; // End Index 占쌕시쇽옙占쏙옙 + nEndIdx = min(nEndIdx, (pReviewResult->GetSReviewResultCount() - 1)) + 1; // End Index - // [2017:3:8]-[WEZASW] : CameraOffset 占쏙옙占쏙옙 占쏙옙占쏙옙 (-1~1 => -5~5) + // [2017:3:8]-[WEZASW] : CameraOffset (-1~1 => -5~5) double m_dMinOffset = -5.0; double m_dMaxOffset = 5.0; double xpostemp, ypostemp; @@ -4407,7 +4557,7 @@ SReviewResult* pReview = pReviewResult->GetSReviewResult(nResultIdx); if (pReview == NULL) continue; - //200占쏙옙 占쏙옙藥뱄옙占쏙옙占� 占쏙옙占쏙옙占쏙옙 占싹뤄옙占쏙옙占쏙옙占쏙옙占� 占쌩븝옙체크 + //200 if (pReview->bCheckSendToMotor == FALSE) { pReview->bCheckSendToMotor = TRUE; @@ -4455,7 +4605,6 @@ } } - //占쏙옙占쏙옙 占쏙옙占쏙옙트占쏙옙 占쌍댐옙占쏙옙 占쏙옙占쏙옙占쏙옙 체크 if (vectorPosX.empty() == TRUE) { g_pLog->DisplayMessage(_T("[GantryAutoGo] No Exist Send Point "), vectorPosX.size()); @@ -4520,7 +4669,7 @@ if(pGlassResult && pReviewProcessor) { // WsiStart - pReviewProcessor->SetJobID(pGlassResult->m_strJobID); // pGlassResult->m_strGlassID -> pGlassResult->m_strJobID 占쏙옙占쏙옙 + pReviewProcessor->SetJobID(pGlassResult->m_strJobID); // pGlassResult->m_strGlassID -> pGlassResult->m_strJobID pReviewProcessor->SetOperID(pGlassResult->m_strOperID); m_pSP2P->ISP2P_UpdateReviewProcessStatus(ReviewProcessStatus_WSIStart, nPlanIndex); @@ -4533,7 +4682,7 @@ MakeWSIUpLoadDirectory(pReviewProcessor->GetUploadImagePath()); //20190219 chm - pReviewProcessor->SetReviewCount(0); // 占쏙옙占쏙옙 Sequence No 占십깍옙화. + pReviewProcessor->SetReviewCount(0); return TRUE; } @@ -4546,7 +4695,7 @@ strPath = strPath + _T("\\WSI"); if(CreateDirectory(strPath,NULL)==FALSE) { - //LYW LOG占쌩곤옙 + //LYW LOG g_pLog->DisplayMessage(_T("[MakeWSIUpLoadDirectory]Directory Create Fail %s, ERROR CODE = %d "),strPath, GetLastError()); } @@ -4587,10 +4736,9 @@ VectorDouble vectorCollisionPosX; vectorCollisionPosX.clear(); - //WSI 占승울옙 占쏙옙트占쏙옙 占쏙옙占쏙옙占싱듸옙 + //WSI pMotorControl->GantrySetTwoGantrySyncModeSend(1); - // WSI result count for (int nModuleIdx = 0; nModuleIdx < Module_GetModuleStatusCount(); nModuleIdx++) { @@ -4601,7 +4749,6 @@ CModuleStatus* pModuleStatus = Module_GetModuleStatus(nModuleIdx); if (pModuleStatus == NULL) continue; - //占썸돌占신몌옙 占쌍깍옙 { double dCollisionPosX = pWsiResult->GetCollisionPositionX() / 1000.0; double dCollisionPosY = 0.0; @@ -4636,14 +4783,13 @@ return 0; } } - // get result index int nStartIdx = pWsiResult->GetStartSReviewResultIndex(); int nEndIdx = pWsiResult->GetEndSReviewResultIndex(); nEndIdx = min(nEndIdx, (pWsiResult->GetSReviewResultCount() - 1)) + 1; // set End Index - // [2017:3:8]-[WEZASW] : CameraOffset 占쏙옙占쏙옙 占쏙옙占쏙옙 (-1~1 => -5~5) + // [2017:3:8]-[WEZASW] : CameraOffset (-1~1 => -5~5) double m_dMinOffset = -5.0; double m_dMaxOffset = 5.0; @@ -4655,7 +4801,7 @@ SReviewResult* pWsi = pWsiResult->GetSReviewResult(nResultIdx); if (pWsi == NULL) continue; - //200占쏙옙 占쏙옙藥뱄옙占쏙옙占� 占쏙옙占쏙옙占쏙옙 占싹뤄옙占쏙옙占쏙옙占쏙옙占� 占쌩븝옙체크 + //200 if (pWsi->bCheckWSISendToMotor == FALSE) { pWsi->bCheckWSISendToMotor = TRUE; @@ -4702,14 +4848,13 @@ } } - //占쏙옙占쏙옙 占쏙옙占쏙옙트占쏙옙 占쌍댐옙占쏙옙 占쏙옙占쏙옙占쏙옙 체크 if (vectorPosX.empty() == TRUE) { - //3360 LYW_ CF AOI QD Review WSI XY MotorMoving Error 占싯띰옙 占쌩삼옙 占쏙옙占쏙옙 占싻쇽옙 占쏙옙 占쏙옙치 START + //3360 LYW_ CF AOI QD Review WSI XY MotorMoving Error START g_pLog->DisplayMessage(_T("[GantryAutoGo] No Exist Send Point,TwoGantrySyncMode OFF!"), vectorPosX.size()); g_pLog->DisplayMessage(_T("[GantryAutoGo] (%d)Gantry Path Send Fail"), pModuleStatus->GetGantryIndex()); //taek 210128 pMotorControl->GantrySetTwoGantrySyncModeSend(0); - //3360 LYW_ CF AOI QD Review WSI XY MotorMoving Error 占싯띰옙 占쌩삼옙 占쏙옙占쏙옙 占싻쇽옙 占쏙옙 占쏙옙치 END + //3360 LYW_ CF AOI QD Review WSI XY MotorMoving Error END } else { @@ -4733,13 +4878,12 @@ int nTickCount = GetTickCount(); while (1) { - //5占쏙옙 占쏙옙占쏙옙타占쏙옙 if ((GetTickCount() - nTickCount) > 5000) { bOverTime = TRUE; break; } - //占쏙옙占쏙옙 占쏙옙占� End 체크 + //End 체크 if (pMotorControl->IsGantryMotionEnd(pModuleStatus->GetGantryIndex()) == TRUE) { if (pMotorControl->GantryAutoGo(pModuleStatus->GetGantryIndex(), vectorPosX, vectorPosY, TRUE)) @@ -4758,15 +4902,12 @@ } - //5占쏙옙占식울옙占쏙옙 占싫울옙占쏙옙占싸댐옙? 占쌓뤄옙 3占쏙옙 占쏙옙천占� 占쏙옙占쏙옙 - //占쏙옙占폜nd 占쏙옙 占쌩몌옙 占쏙옙占시쇽옙占쏙옙 占쏙옙占쏙옙占쏙옙 if (bOverTime == TRUE) { for (int i = 0; i < 3; i++) { Sleep(1000); - //占쏙옙占싶곤옙 占쏙옙占쏙옙占싹쇽옙 占쏙옙占승삼옙占쏙옙占싹띰옙 Send 占쏙옙호占쏙옙 Fail 占쌩삼옙 占쏙옙占쏙옙 Retry 3占쏙옙 占쏙옙占쏙옙 if (pMotorControl->GantryAutoGo(pModuleStatus->GetGantryIndex(), vectorPosX, vectorPosY, TRUE)) { nTotalCount += (int)vectorPosX.size(); @@ -4901,9 +5042,9 @@ // get result index int nStartIdx = pReviewResult->GetStartSReviewResultIndex(); int nEndIdx = pReviewResult->GetEndSReviewResultIndex(); - nEndIdx = min(nEndIdx, (pReviewResult->GetSReviewResultCount()-1)) + 1; // End Index 占쌕시쇽옙占쏙옙 + nEndIdx = min(nEndIdx, (pReviewResult->GetSReviewResultCount()-1)) + 1; // End Index - // [2017:3:8]-[WEZASW] : CameraOffset 占쏙옙占쏙옙 占쏙옙占쏙옙 (-1~1 => -5~5) + // [2017:3:8]-[WEZASW] : CameraOffset (-1~1 => -5~5) double m_dMinOffset = -5.0; double m_dMaxOffset = 5.0; @@ -5005,7 +5146,7 @@ if(pGlassResult && pReviewProcessor) { // MeasureStart - pReviewProcessor->SetJobID(pGlassResult->m_strJobID); // pGlassResult->m_strGlassID -> pGlassResult->m_strJobID 占쏙옙占쏙옙 + pReviewProcessor->SetJobID(pGlassResult->m_strJobID); // pGlassResult->m_strGlassID -> pGlassResult->m_strJobID pReviewProcessor->SetOperID(pGlassResult->m_strOperID); m_pSP2P->ISP2P_UpdateReviewProcessStatus(ReviewProcessStatus_MeasureStart, nPlanIndex); @@ -5080,7 +5221,7 @@ const SCoordInfo* pCoordInfo = Module_GetCoordInfo(nModuleIdx); if(pCoordInfo == NULL) continue; - // [2017:3:8]-[WEZASW] : CameraOffset 占쏙옙占쏙옙 占쏙옙占쏙옙 (-1~1 => -5~5) + // [2017:3:8]-[WEZASW] : CameraOffset (-1~1 => -5~5) double m_dMinOffset = -5.0; double m_dMaxOffset = 5.0; @@ -5186,7 +5327,6 @@ int nTotalCount = 0; double dDefectPosX, dDefectPosY; - // Module占쏙옙 占쏙옙치占쏙옙 占쏙옙占쏙옙 ModuleStatus sorting std::vector<CModuleStatus*> SortedModuleStatus; for(int nModuleIdx = 0; nModuleIdx < m_pSP2P->ISP2P_GetModuleStatusCount(); nModuleIdx++) { @@ -5240,7 +5380,7 @@ const SCoordInfo* pCoordInfo = Module_GetCoordInfo(pReviewResult->GetModuleIndex()); if(pCoordInfo == NULL) continue; - // [2017:3:8]-[WEZASW] : CameraOffset 占쏙옙占쏙옙 占쏙옙占쏙옙 (-1~1 => -5~5) + // [2017:3:8]-[WEZASW] : CameraOffset (-1~1 => -5~5) double m_dMinOffset = -5.0; double m_dMaxOffset = 5.0; @@ -5261,7 +5401,6 @@ if(nHeaderIdx == 0) { - // 占싱듸옙占쏙옙 占쏙옙占쏙옙占쏙옙표 占쌩곤옙 if((int)vectorPos.size() < MAX_MOTOR_ADDRESS_SIZE) { pSReviewResult->dTargetMotorX = dDefectPosX; @@ -6095,7 +6234,6 @@ nSchedulingCount = pReviewScheduler->PathScheduling(vecPathData, vecStartPathData); - if (nSchedulingCount>0) { m_pSP2P->ISP2P_DisplayMessage(_T("[ReviewScheduler] CalculatePath")); @@ -6529,8 +6667,6 @@ // add user schedule result - - //占쏙옙占쏙옙占쌨모리울옙 채占쏙옙占쏙옙 占쏙옙占쏙옙占쏙옙 占쏙옙占쏙옙占쏙옙 占쏙옙占쏙옙 占쏙옙표占쏙옙 占쏙옙占쏙옙체占쏙옙 채占쏙옙占쌍댐옙 占쏙옙占� { @@ -7245,7 +7381,6 @@ break; } break; - // 占싱삼옙占� case CPJT_PlanMeasure: { const CRcpMeasureInfo *pRcpMeasureInfo = pRsRcpMeasureInfo->GetRcpMeasureInfo(0); @@ -7378,7 +7513,7 @@ } //CIM DV Data -BOOL CSequenceProcessor_CPJT::SendDVDataToSignalControl() // 占쏙옙占쏙옙 +BOOL CSequenceProcessor_CPJT::SendDVDataToSignalControl() { CGlassResult *pGlassResult = m_pSP2P->ISP2P_GetCurrentGlassResult(); if (pGlassResult==NULL) return FALSE; @@ -7403,7 +7538,7 @@ } -int CSequenceProcessor_CPJT::MakeDVData(CGlassResult *pGlassResult, char* pDVData, int nIndex) // 占쏙옙占쏙옙 +int CSequenceProcessor_CPJT::MakeDVData(CGlassResult *pGlassResult, char* pDVData, int nIndex) { g_pLog->DisplayMessage(_T("[SequenceProcessor] SendDVDataToSignalControl->MakeDVData IN.")); @@ -7412,16 +7547,16 @@ const CRsRcpReviewInfo* pRsRcpReviewInfo = m_pSP2P->ISP2P_Recipe_GetRsRcpReviewInfo(); if (pRsRcpReviewInfo == NULL) return FALSE; - // Review 占쏙옙占쏙옙 占쏙옙占쏙옙 + // Review const CRcpLightInfo *pReviewLightInfo = pRsRcpReviewInfo->GetRcpLightInfo(nIndex); - // Review AFM 占쏙옙占쏙옙 + // Review AFM const CRcpAFMRecipeInfo *pReviewAFMInfo = pRsRcpReviewInfo->GetRcpAFMRecipeInfo(nIndex); // Review Align Info const CAlignResult* pAlignResult = pGlassResult->GetAlignResult(); // Review Defect Info const CReviewResult* pReviewResult = pGlassResult->GetReviewResult(nIndex); - // Review 占쏙옙占쏙옙 占쏙옙占쏙옙 + // Review const CModuleStatus* pModuleStatus = Module_GetModuleStatus(nIndex); const SMagnificInfo* pSMagnificInfo = pModuleStatus->GetMagnificInfo(pReviewAFMInfo->GetZoomIndex()); CSignalControl* pSignalControl = m_pSP2P->ISP2P_GetSignalControl(); @@ -7443,12 +7578,12 @@ // Write DVData Packet //_DVDataPack_B7_8ver DVDataPack; //**Review - //INLINE : 10占쏙옙 - //TFE-OFF : 20占쏙옙 - //Hcut : 50占쏙옙 - //LAMI : 5占쏙옙 + //INLINE : 10 + //TFE-OFF : 20 + //Hcut : 50 + //LAMI : 5 //**WSI - //10占쏙옙 占쏙옙占쏙옙 + //10 /////////////////////////////////////////////////////////////////////////// @@ -7495,8 +7630,8 @@ //nAlignResult = 1; - //nAlignResult00 = pAlignResult->nFindAlign[0] * 1000;//占쏙옙占쏙옙 - //nAlignResult01 = pAlignResult->nFindAlign[1] * 1000;//占쏙옙占쏙옙 + //nAlignResult00 = pAlignResult->nFindAlign[0] * 1000; + //nAlignResult01 = pAlignResult->nFindAlign[1] * 1000; //nAlignResult00 = pAlignResult->dFindScore[0]; //nAlignResult01 = pAlignResult->dFindScore[1]; @@ -7514,7 +7649,6 @@ nAlignResult01 = 0; } - //占식울옙? nReviewAliveCamera00 = ReviewCamera_GetReviewCameraControl(0)->GetConnected() * 1000; nReviewAliveCamera01 = ReviewCamera_GetReviewCameraControl(1)->GetConnected() * 1000; @@ -7531,8 +7665,7 @@ { wsprintf(DriveText, TEXT("%C:"), Drive); UINT type = GetDriveType(DriveText); - if ((dwDrive & dwDriveCh) && (type == DRIVE_REMOVABLE || type == DRIVE_FIXED || type == DRIVE_RAMDISK)) { - // 占싹듸옙酉� + if ((dwDrive & dwDriveCh) && (type == DRIVE_REMOVABLE || type == DRIVE_FIXED || type == DRIVE_RAMDISK)) { ULARGE_INTEGER i64FreeBytesToCaller = { 0 }, i64TotalBytes = { 0 }, i64FreeBytes = { 0 }; BOOL bRsult = GetDiskFreeSpaceEx(DriveText, (PULARGE_INTEGER)&i64FreeBytesToCaller, (PULARGE_INTEGER)&i64TotalBytes, (PULARGE_INTEGER)&i64FreeBytes); if (bRsult) { @@ -7746,7 +7879,7 @@ pSignalControl->WritePacketData(_T("15100"), sizeof(DVDataPack_CPJT), (short*)&DVData);*/ } -//#3358 KYH FDC 占쏙옙占쏙옙占쏙옙 占쏙옙占쏙옙 占쏙옙占쏙옙 占쏙옙占쏙옙 ADD START +//#3358 KYH FDC ADD START void CSequenceProcessor_CPJT::MakeDVData2() { @@ -7759,9 +7892,9 @@ } else { - // Review 占쏙옙占쏙옙 占쏙옙占쏙옙 + // Review pReviewLightInfo = pRsRcpReviewInfo->GetRcpLightInfo(0); - // Review AFM 占쏙옙占쏙옙 + // Review AFM pReviewAFMInfo = pRsRcpReviewInfo->GetRcpAFMRecipeInfo(0); } @@ -7785,7 +7918,7 @@ - // Review 占쏙옙占쏙옙 占쏙옙占쏙옙 + // Review const CModuleStatus* pModuleStatus = Module_GetModuleStatus(0); const SMagnificInfo* pSMagnificInfo = NULL; if (pModuleStatus == NULL) @@ -7887,8 +8020,8 @@ //nAlignResult = 1; - //nAlignResult00 = pAlignResult->nFindAlign[0] * 1000;//占쏙옙占쏙옙 - //nAlignResult01 = pAlignResult->nFindAlign[1] * 1000;//占쏙옙占쏙옙 + //nAlignResult00 = pAlignResult->nFindAlign[0] * 1000; + //nAlignResult01 = pAlignResult->nFindAlign[1] * 1000; //nAlignResult00 = pAlignResult->dFindScore[0]; //nAlignResult01 = pAlignResult->dFindScore[1]; @@ -7928,7 +8061,6 @@ nAlignResult01 = 1000; } - //占식울옙? if (ReviewCamera_GetReviewCameraControl(0) != NULL) { nReviewAliveCamera00 = ReviewCamera_GetReviewCameraControl(0)->GetConnected() * 1000; @@ -7960,8 +8092,7 @@ { wsprintf(DriveText, TEXT("%C:"), Drive); UINT type = GetDriveType(DriveText); - if ((dwDrive & dwDriveCh) && (type == DRIVE_REMOVABLE || type == DRIVE_FIXED || type == DRIVE_RAMDISK)) { - // 占싹듸옙酉� + if ((dwDrive & dwDriveCh) && (type == DRIVE_REMOVABLE || type == DRIVE_FIXED || type == DRIVE_RAMDISK)) { ULARGE_INTEGER i64FreeBytesToCaller = { 0 }, i64TotalBytes = { 0 }, i64FreeBytes = { 0 }; BOOL bRsult = GetDiskFreeSpaceEx(DriveText, (PULARGE_INTEGER)&i64FreeBytesToCaller, (PULARGE_INTEGER)&i64TotalBytes, (PULARGE_INTEGER)&i64FreeBytes); if (bRsult) { @@ -8008,7 +8139,7 @@ return; } -//#3358 KYH FDC 占쏙옙占쏙옙占쏙옙 占쏙옙占쏙옙 占쏙옙占쏙옙 占쏙옙占쏙옙 ADD END +//#3358 KYH FDC ADD END DWORD CSequenceProcessor_CPJT::GetDiskUsage() { @@ -8046,7 +8177,7 @@ BOOL bResult = FALSE; - // PCControl D2300 (占싯삼옙 占쏙옙占쏙옙) + // PCControl D2300 switch(nSignalIndex) { case PCControlRecv_TimeChange: @@ -8112,7 +8243,7 @@ g_pLog->DisplayMessage(_T("[SequenceProcessor] Success! SetLocalTime(), Current: %04d-%02d-%02d %02d-%02d-%02d, Changed: %04d-%02d-%02d %02d-%02d-%02d"), CurrentTime.wYear, CurrentTime.wMonth, CurrentTime.wDay, CurrentTime.wHour, CurrentTime.wMinute, CurrentTime.wSecond, ChangedTime.wYear, ChangedTime.wMonth, ChangedTime.wDay, ChangedTime.wHour, ChangedTime.wMinute, ChangedTime.wSecond); - // AFM & WSI TIME 占쏙옙占쏙옙화 + // AFM & WSI TIME SendSystemTime(ChangedTime); } else { g_pLog->DisplayMessage(_T("[SequenceProcessor] Fail! SetLocalTime()")); @@ -8139,7 +8270,7 @@ return TRUE; } -// Local System 占쏙옙占쏙옙 占시곤옙占쏙옙 占쏙옙占쏙옙 占쏙옙청 占쏙옙트占싼뤄옙占쏙옙 占시곤옙占쏙옙 처占쏙옙 占쏙옙占쏙옙 +// Local System BOOL CSequenceProcessor_CPJT::SendSystemTime(SYSTEMTIME sysTime) { SYSTEMTIME CurrentTime; @@ -8286,7 +8417,7 @@ case PCControlSend_Defoucs: m_pSP2P->ISP2P_DisplayMessage(_T("[PCControl_Send] Defoucs! => %d"),0); break; - case PCControlSend_Diagnosis: // 0412 占쌘곤옙占쏙옙占쏙옙 占쏙옙호 占쌩곤옙 + case PCControlSend_Diagnosis: // 0412 m_pSP2P->ISP2P_DisplayMessage(_T("[PCControl_Send] Diagnosis! => %d"), 0); break; } @@ -8338,8 +8469,8 @@ m_pSP2P->ISP2P_DisplayMessage(_T("[PCControl_Send] Review Start Ack! => %d"), 1); break; - case PCControlSend_ResultDataComplete_CPJT: - m_pSP2P->ISP2P_DisplayMessage(_T("[PCControl_Send] Result Data Complete! => %d"), 1); + case PCControlSend_ReviewEndAck_CPJT: + m_pSP2P->ISP2P_DisplayMessage(_T("[PCControl_Send] Review End Ack! => %d"), 1); break; } } @@ -8397,7 +8528,7 @@ case PCControlSend_Defoucs: m_pSP2P->ISP2P_DisplayMessage(_T("[PCControl_Send] Defoucs! => %d"),0); break; - case PCControlSend_Diagnosis: // 0412 占쌘곤옙占쏙옙占쏙옙 占쏙옙호 占쌩곤옙 + case PCControlSend_Diagnosis: // 0412 m_pSP2P->ISP2P_DisplayMessage(_T("[PCControl_Send] Diagnosis! => %d"), 0); break; } @@ -8497,6 +8628,7 @@ case PCControlRecv_AutoMode_CPJT: // auto mode on { m_pSP2P->ISP2P_DisplayMessage(_T("[PCControl_Mode] Auto Mode")); + SetSimulationMode(FALSE); bResult = SetProcessMode(ProcessAutoMode_CPJT); if (bResult==FALSE) m_pSP2P->ISP2P_DisplayMessage(_T("[PCControl_Mode] Auto Mode Error!")); } @@ -8511,7 +8643,7 @@ if (bResult==FALSE) m_pSP2P->ISP2P_DisplayMessage(_T("[PCControl_Mode] Manual Mode Error!")); // lmk simul manual camera,motor stop - //ReviewCamera_CameraControl(CameraControlStop); // 占쏙옙占쏙옙 占쏙옙占쌩몌옙 카占쌨띰옙 占쌘듸옙 占쏙옙탑 + //ReviewCamera_CameraControl(CameraControlStop); CMotorControl* pMotorControl = m_pSP2P->ISP2P_GetMotorControl(); if(pMotorControl) pMotorControl->CommonSetAutoStop(); @@ -8682,10 +8814,10 @@ if (SetLocalTime(&sTime)) { - m_pSP2P->ISP2P_DisplayMessage(_T("[PCControl_Signal] 占시곤옙占쏙옙占쏙옙화占쏙옙占쏙옙 %s"), strtime); + m_pSP2P->ISP2P_DisplayMessage(_T("[PCControl_Signal] TymeSync Success %s"), strtime); } else - m_pSP2P->ISP2P_DisplayMessage(_T("[PCControl_Signal] 占시곤옙占쏙옙占쏙옙화占쏙옙占쏙옙 %s"), strtime); + m_pSP2P->ISP2P_DisplayMessage(_T("[PCControl_Signal] TymeSync Fail %s"), strtime); //memcpy(&time, strTime, 2); @@ -8700,14 +8832,21 @@ break; case PCControlRecv_Autodiagnosis: { - m_pSP2P->ISP2P_DisplayMessage(_T("[PCControl_Signal] Diagno start => %d"), bSignalOn); + /*< LYW 20210719 : #3517 ADD Start >*/ + CSignalControl* pSignalControl = m_pSP2P->ISP2P_GetSignalControl(); + CString strDiagnosisMode; + pSignalControl->ReadData(_T("11160"), 2, strDiagnosisMode); + int nDiagnosisMode = atoi(strDiagnosisMode); + + m_pSP2P->ISP2P_DisplayMessage(_T("[PCControl_Signal] Diagno start => %d, DiagnosisMode => %d"), bSignalOn, nDiagnosisMode); if (bSignalOn) { bResult = SendSignalToSignalControl(PCControlSendSignalIndex_DiagnoAck, 0); m_pSP2P->ISP2P_GetDlgDiagnosis()->ShowWindow(SW_SHOW); - m_pSP2P->ISP2P_GetDiagnosisManager()->RecvSignalToSignalControl(0, 0); + m_pSP2P->ISP2P_GetDiagnosisManager()->RecvSignalToSignalControl(0, nDiagnosisMode); } + /*< LYW 20210719 : #3517 ADD End >*/ else bResult = SendSignalOffToSignalControl(PCControlSendSignalIndex_DiagnoAck, 0); @@ -8906,7 +9045,6 @@ CReviewResult* pWsiMultiShotResult = pGlassResult->GetWsiMultiShotResult(nModuleIndex); if (pWsiMultiShotResult == NULL) goto RESULT_FAIL; - // 占쏙옙占쏙옙占쏙옙 占싸듸옙占쏙옙占쏙옙 占쏙옙占쏙옙占승댐옙. int nCurResultIdx = pWsiMultiShotResult->GetLastSReviewResultIndex() + 1; // last index + 1 int nStartResultIdx = pWsiMultiShotResult->GetStartSReviewResultIndex(); int nEndResultIdx = pWsiMultiShotResult->GetEndSReviewResultIndex(); @@ -8920,13 +9058,11 @@ int nMPosY = int(pPosition->dMotorPosY * 1000.0); double dTime = (double)m_ProcessTimer.GetDurationMilliSecond(); - // 占싸듸옙占쏙옙占쏙옙 占쌕몌옙占쏙옙 占쏙옙占쏙옙占쏙옙占쏙옙. if (measureResut.nResultIndex != nCurResultIdx) { goto RESULT_FAIL; } - // 占쏙옙占쏙옙 占쏙옙占쏙옙占쏙옙 占쏙옙占쏙옙. // measureResut if (pWsiMultiShotResult->GetSReviewResultCount() == 0) return; @@ -8951,7 +9087,6 @@ // set last result idx pWsiMultiShotResult->SetLastSReviewResultIndex(nCurResultIdx); - // 占쏙옙占쏙옙占쏙옙 占쏙옙占쏙옙트占쏙옙占쏙옙 占쌉곤옙, WSI 占쏙옙占쏙옙占� 占쏙옙占쏙옙 占쏙옙占쏙옙占쏙옙... if (nCurResultIdx == nEndResultIdx && nCurResultIdx <= pWsiMultiShotResult->GetSReviewResultCount()) { nStartResultIdx = nCurResultIdx + 1; @@ -8962,8 +9097,7 @@ pWsiMultiShotResult->SetStartSReviewResultIndex(nStartResultIdx); pWsiMultiShotResult->SetEndSReviewResultIndex(nEndResultIdx); - // 占쏙옙占쏙옙占쏙옙 占쏙옙占쏙옙트 占쏙옙占쏙옙 占쏙옙占쏙옙占쏙옙占쏙옙. - ::Sleep(3000); // 占쏙옙占쏙옙甄占� 占십쇽옙占쏙옙. 占쏙옙占쏙옙占쏙옙 占쏙옙占쏙옙 占쏙옙占쏙옙. + ::Sleep(3000); // Process_RemainWsiPoint(nModuleIndex); } @@ -9029,7 +9163,7 @@ if(pGlassResult && pReviewProcessor) { // WsiStart - pReviewProcessor->SetJobID(pGlassResult->m_strJobID); // pGlassResult->m_strGlassID -> pGlassResult->m_strJobID 占쏙옙占쏙옙 + pReviewProcessor->SetJobID(pGlassResult->m_strJobID); // pGlassResult->m_strGlassID -> pGlassResult->m_strJobID pReviewProcessor->SetOperID(pGlassResult->m_strOperID); m_pSP2P->ISP2P_UpdateReviewProcessStatus(ReviewProcessStatus_WSIReflowStart, nPlanIndex); @@ -9065,7 +9199,7 @@ if(pGlassResult && pReviewProcessor) { // WsiStart - pReviewProcessor->SetJobID(pGlassResult->m_strJobID); // pGlassResult->m_strGlassID -> pGlassResult->m_strJobID 占쏙옙占쏙옙 + pReviewProcessor->SetJobID(pGlassResult->m_strJobID); // pGlassResult->m_strGlassID -> pGlassResult->m_strJobID pReviewProcessor->SetOperID(pGlassResult->m_strOperID); m_pSP2P->ISP2P_UpdateReviewProcessStatus(ReviewProcessStatus_WSIStart, nPlanIndex); @@ -9092,7 +9226,6 @@ WSIAllReadySignal(1); // send wsi start - // 占쏙옙占쏙옙 占쏙옙占쏙옙 if (!WSIMultiShotAllStartSignal()) { g_pLog->DisplayMessage(_T("[WSI] WSI MultiShot Start Fail!!")); @@ -9103,7 +9236,7 @@ if (pGlassResult && pReviewProcessor) { // WsiStart - pReviewProcessor->SetJobID(pGlassResult->m_strJobID); // pGlassResult->m_strGlassID -> pGlassResult->m_strJobID 占쏙옙占쏙옙 + pReviewProcessor->SetJobID(pGlassResult->m_strJobID); // pGlassResult->m_strGlassID -> pGlassResult->m_strJobID pReviewProcessor->SetOperID(pGlassResult->m_strOperID); m_pSP2P->ISP2P_UpdateReviewProcessStatus(ReviewProcessStatus_WSIMultiShotStart, nPlanIndex); @@ -9166,7 +9299,7 @@ int nEndIdx = pWsiResult->GetEndSReviewResultIndex(); nEndIdx = min(nEndIdx, (pWsiResult->GetSReviewResultCount()-1)) + 1; // set End Index - // [2017:3:8]-[WEZASW] : CameraOffset 占쏙옙占쏙옙 占쏙옙占쏙옙 (-1~1 => -5~5) + // [2017:3:8]-[WEZASW] : CameraOffset (-1~1 => -5~5) double m_dMinOffset = -5.0; double m_dMaxOffset = 5.0; @@ -9296,7 +9429,6 @@ CModuleStatus* pModuleStatus = Module_GetModuleStatus(nModuleIdx); if (pModuleStatus == NULL) continue; - //占썸돌占신몌옙 占쌍깍옙 { double dCollisionPosX = pWsiUserResult->GetCollisionPositionX() / 1000.0; double dCollisionPosY = 0.0; @@ -9339,7 +9471,7 @@ int nEndIdx = pWsiUserResult->GetEndSReviewResultIndex(); nEndIdx = min(nEndIdx, (pWsiUserResult->GetSReviewResultCount()-1)) + 1; // set End Index - // [2017:3:8]-[WEZASW] : CameraOffset 占쏙옙占쏙옙 占쏙옙占쏙옙 (-1~1 => -5~5) + // [2017:3:8]-[WEZASW] : CameraOffset (-1~1 => -5~5) double m_dMinOffset = -5.0; double m_dMaxOffset = 5.0; @@ -9442,17 +9574,13 @@ } } - - //占쏙옙占쏙옙占쏙옙 占쏙옙占쏙옙 + pWsiMultiShotResult->GetVectorSReviewResult()->clear(); int nResultCount = 0; if (m_vecSReviewResult.size()>0) { - //占쏙옙占쏙옙占쌕몌옙 占쏙옙占쏙옙 占쏙옙占� 占쏙옙占쏙옙占쏙옙占쏙옙킷占� 占쏙옙 占쏙옙占쏙옙殮占� 占쏙옙占쏙옙 for(int i=0; i< m_vecSReviewResult.size(); i++) - { - //占쏙옙占쏙옙占쏙옙 占쏙옙占시울옙 占쏙옙占쏙옙 占쏙옙占쏙옙 占쌉뤄옙占쌔야듸옙 占쌓것몌옙큼 占쏙옙占쏙옙占쏙옙! - //占쏙옙占쏙옙占쏙옙 WSI FOV 4占쏙옙占쏙옙 占쏙옙占쌔울옙占쏙옙 占쏙옙占쏙옙 + { double dOringinX = m_vecSReviewResult[i].nUMOriginX; double dOringinY = m_vecSReviewResult[i].nUMOriginY; @@ -9721,8 +9849,6 @@ CModuleStatus* pModuleStatus = Module_GetModuleStatus(nModuleIdx); if (pModuleStatus == NULL) continue; - - //占썸돌占신몌옙 占쌍깍옙 { double dCollisionPosX = pWsiMultiShotResult->GetCollisionPositionX() / 1000.0; @@ -9750,7 +9876,7 @@ int nEndIdx = pWsiMultiShotResult->GetEndSReviewResultIndex(); nEndIdx = min(nEndIdx, (pWsiMultiShotResult->GetSReviewResultCount() - 1)) + 1; // set End Index - // [2017:3:8]-[WEZASW] : CameraOffset 占쏙옙占쏙옙 占쏙옙占쏙옙 (-1~1 => -5~5) + // [2017:3:8]-[WEZASW] : CameraOffset (-1~1 => -5~5) double m_dMinOffset = -5.0; double m_dMaxOffset = 5.0; @@ -10191,7 +10317,7 @@ CRsRcpReviewInfo* pRsRcpReviewInfo = m_pSP2P->ISP2P_Recipe_GetRsRcpReviewInfo(); if(pRsRcpReviewInfo == NULL) return FALSE; - if(pRsRcpReviewInfo->GetRcpUserDefectInfoCount() < 1) return TRUE; // 占쏙옙占쏙옙占쏙옙占쏙옙 카占쏙옙트占쏙옙 占쏙옙占쌕몌옙 占싼어가占쏙옙 + if(pRsRcpReviewInfo->GetRcpUserDefectInfoCount() < 1) return TRUE; double dCenterPosX, dCenterPosY; @@ -10250,18 +10376,18 @@ _grmGlassData* pSharedGlassData = pDitSharedGlassRaw->GetGlassData(); if(pSharedGlassData == NULL) return FALSE; - //pSharedGlassData->m_nUserReviewNum = 0; //占쏙옙占쏙옙 占쌨몌옙 User plan + //pSharedGlassData->m_nUserReviewNum = 0; // User plan _grmDefectData* pSharedDefect; - int nPointCount = pRecipeinfo->GetRcpUserDefectInfoCount(); // User 占쏙옙표 占쏙옙 카占쏙옙트 + int nPointCount = pRecipeinfo->GetRcpUserDefectInfoCount(); - int nSharedDefectNum = pSharedGlassData->m_nDefectNum; // 占쏙옙占쏙옙 占싼곤옙占쏙옙 User Idx 占쏙옙 첫占쏙옙째 Index 占쏙옙 占싫댐옙 - int nStartIdx=nSharedDefectNum;// USER 占쏙옙占쏙옙 占쏙옙占쏙옙 IDX 占싸울옙占싹깍옙 占쏙옙占쏙옙 占쏙옙占쏙옙占쏙옙 + int nSharedDefectNum = pSharedGlassData->m_nDefectNum; + int nStartIdx=nSharedDefectNum; - CRcpPlanInfo* pRcpPlanInfo; // 占쏙옙占쏙옙占쏙옙 占쏙옙占쏙옙 - CRcpUserDefectInfo *pDefectInfo;// 占쏙옙占쏙옙占쏙옙 defect 占쏙옙占쏙옙 + CRcpPlanInfo* pRcpPlanInfo; + CRcpUserDefectInfo *pDefectInfo; - int nInsepectionType;// User 타占쏙옙 Reviewreflow = 0 wsiReflow =1; REV&WSI =2; WSIUSEr =3; USER =4; + int nInsepectionType;// User Reviewreflow = 0 wsiReflow =1; REV&WSI =2; WSIUSEr =3; USER =4; int nCount = 0; @@ -10325,7 +10451,7 @@ BOOL CSequenceProcessor_CPJT::CompareRevType(int nInsType,int nRevType) { - //Plan 타占쌉곤옙 InspectionMode 占쏙옙 + //Plan InspectionMode if(nRevType == CPJT_PlanUser) { if(nInsType == USER) return TRUE; @@ -10383,7 +10509,7 @@ CString strMessage, strResultFilePath, strUploadResultFilePath, strLocalRawPath; CString strUploadRawPath, strUploadImagePath, strAOIRawFileName, strAOIRawFilePath; - //3-1. 占쏙옙占쏙옙 占쏙옙占� 占쏙옙占쏙옙 占쏙옙占쏙옙 + //3-1. m_pSP2P->ISP2P_SetReviewResultData(pGlassResult); strLocalRawPath = pNetworkInfo->m_strLocalRawPath; @@ -10410,7 +10536,7 @@ if(strUploadRawPath.IsEmpty() == FALSE && strAOIRawFilePath.IsEmpty() == FALSE) { - // [2017:5:16]-[WEZASW] : 占쏙옙占쏙옙 PASS占쏙옙占쏙옙 占쏙옙占쏙옙 占쏘영占쏙옙 占쏙옙황占쏙옙 占쏙옙占쏙옙 AOI Server占쏙옙 RAW 占쏙옙占쏙옙 占쏙옙占쏙옙 占쏙옙占싸듸옙 占쏙옙占쏙옙. + // [2017:5:16]-[WEZASW] : strUploadResultFilePath.Format(_T("%s\\%s"), strUploadRawPath, strAOIRawFileName); if(CopyFile(strResultFilePath, strUploadResultFilePath, FALSE)) @@ -10431,9 +10557,9 @@ } // delete file of Glass direction - DeleteFile(pNetworkInfo->m_strAOIRawPath + _T("\\") + pGlassResult->m_strJobID + _T("TD"));//pGlassResult->m_strGlassID -> m_StrJobID 占쏙옙占쏙옙 + DeleteFile(pNetworkInfo->m_strAOIRawPath + _T("\\") + pGlassResult->m_strJobID + _T("TD"));//pGlassResult->m_strGlassID -> m_StrJobID - // [2017:4:11]-[WEZASW] :CIM(DV Data) 占쏙옙占쏙옙 占쌓몌옙 占쌩곤옙. + // [2017:4:11]-[WEZASW] :CIM(DV Data) if (SendDVDataToSignalControl()==FALSE) { m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::ReviewEnd] DV Data Send FAIL!")); @@ -10453,8 +10579,6 @@ BOOL CSequenceProcessor_CPJT::MoveReviewStartMotorPosition(CGlassResult* pGlassResult,int nReviewType) { - //혹占시놂옙 占쏙옙占싹깍옙占� 占쏙옙占쌤듸옙 - //占쏙옙占쏙옙 占시뤄옙占쏙옙 첫占쏙옙째 占쏙옙치占쏙옙 占싱듸옙 double dDefectPosX,dDefectPosY = 0; @@ -10518,7 +10642,7 @@ void CSequenceProcessor_CPJT::SendWsiErrorAlarm_CPJT(int Index) //190801 chm { - //wsi 占쏙옙占쏙옙 占싯띰옙 + //wsi if(Index==1) { g_pLog->DisplayMessage(_T("[SequenceProcessor_CPJT] WSI Alive Error!!!")); @@ -10532,7 +10656,7 @@ void CSequenceProcessor_CPJT::SendWsiAlive_CPJT()//190801 chm { - //WSI Alive 占쏙옙호 占쏙옙占쏙옙 + //WSI Alive SetWSIAliveCheck(TRUE); } @@ -10558,7 +10682,7 @@ if(bWsiAliveCheck ==FALSE){ m_pCSPC->SendWsiErrorAlarm_CPJT(1); } - bWsiAliveCheck=FALSE; //30占십울옙 占싼뱄옙占쏙옙 0占쏙옙占쏙옙 占십깍옙화 + bWsiAliveCheck=FALSE; } } -- Gitblit v1.9.3