| | |
| | | enum CPJT_GANTRY_TYPE { GantryType_Left, GantryType_Right }; |
| | | |
| | | enum Judgement_CPJT { |
| | | Judge_OK_CPJT = 0, Judge_RP_CPJT, Judge_NG_CPJT, Judge_TR_CPJT, Judge_PR_CPJT, Judge_PT_CPJT, Judge_Review_CPJT, Judge_RC_CPJT, Judge_Size_CPJT, Judge_VI_CPJT, Judge_Rework_CPJT, Judge_Unknown_CPJT |
| | | // Judge_OK_CPJT = 0, Judge_RP_CPJT, Judge_NG_CPJT, Judge_TR_CPJT, Judge_PR_CPJT, Judge_PT_CPJT, Judge_Review_CPJT, Judge_RC_CPJT, Judge_Size_CPJT, Judge_VI_CPJT, Judge_Rework_CPJT, Judge_Unknown_CPJT |
| | | Judge_OK_CPJT = 0, Judge_RP_CPJT, Judge_NG_CPJT, Judge_TR_CPJT, Judge_PR_CPJT, Judge_ND_CPJT, Judge_PT_CPJT, Judge_Review_CPJT, Judge_RC_CPJT, Judge_Size_CPJT, Judge_VI_CPJT, Judge_Rework_CPJT, Judge_LN_CPJT, Judge_Unknown_CPJT, Judge_SR_CPJT ////< KEJ 20231123 - #4669 MOD > |
| | | }; |
| | | enum JudgeCode_CPJT { |
| | | TRDF_CPJT = 0, BATR_CPJT, DOBB_CPJT, DOBS_CPJT, DOWW_CPJT, DOWB_CPJT, DOWS_CPJT |
| | |
| | | m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::AlignStart] Send Align Fail Data!")); |
| | | } |
| | | |
| | | AlignCamera_CameraControl(CameraControlStop); // 210805 Align Camera Sequence 변경 |
| | | |
| | | /*< SWK 20221226 - #4403 MOD Start >*/ |
| | | // AlignCamera_CameraControl(CameraControlStop); // 210805 Align Camera Sequence 변경 |
| | | // |
| | | // SendSignalToSignalControl(PCControlSendSignalIndex_Seq, PCControlSend_AlignComplete_CPJT); |
| | | // m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::AlignStart] Send Align Complete Signal!")); |
| | | SendSignalToSignalControl(PCControlSendSignalIndex_Seq, PCControlSend_AlignComplete_CPJT); |
| | | m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::AlignStart] Send Align Complete Signal!")); |
| | | |
| | | AlignCamera_CameraControl(CameraControlStop); |
| | | /*< SWK 20221226 - #4403 MOD End >*/ |
| | | |
| | | // LJY-20180905 |
| | | m_pSP2P->ISP2P_UpdateAlignResultStatus(0, pGlassResult); |
| | |
| | | //SetUploadResultFailCount(0); |
| | | |
| | | bFileFind = FALSE; |
| | | |
| | | m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::GlassLoading] FileMonitor Thread Stop Ready")); |
| | | m_pSP2P->ISP2P_GetReviewProcessor()->FileMonitorThreadStop(); /* < KJG 20230630 - #4517 ADD Start >*/ |
| | | m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::GlassLoading] FileMonitor Thread Stop Complete")); |
| | | |
| | | /*< LYW 20211109 - #3662 Delete Start >*/ |
| | | //m_pSP2P->ISP2P_GetDiagnosisHistory(); |
| | |
| | | // #3381 LYW CF AOI Review FDC TackTime ADD START |
| | | pDitRawClient->GetGlassData()->m_tmReviewLoading = CTime::GetCurrentTime(); |
| | | // #3381 LYW CF AOI Review FDC TackTime ADD END |
| | | |
| | | |
| | | CString strGlassIDTemp = NULL; |
| | | CString strGlassStepIdTemp = NULL; |
| | |
| | | |
| | | strGlassIDTemp = pTransferData->strGlassID; |
| | | strGlassStepIdTemp = pTransferData->strStepID; |
| | | |
| | | |
| | | strGlassIDTemp = pTransferData->strGlassID; |
| | | strcpy(pDitRawClient->GetGlassData()->m_strGlassID, strGlassIDTemp); |
| | |
| | | /*bFileFind = FindRawBinFile(strFileName);*/ |
| | | |
| | | pDitRawClient->SetReviewStart(); |
| | | Sleep(1000); |
| | | //< SWK 20221226 - #4403 DEL > |
| | | // Sleep(1000); |
| | | |
| | | m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::Loading] Transfer Data Read Success!")); |
| | | |
| | |
| | | } |
| | | //#3561 210908 LYW ADD End |
| | | |
| | | Sleep(300); |
| | | //< SWK 20221226 - #4403 MOD > |
| | | Sleep(100); |
| | | |
| | | //original |
| | | // if (SendSignalToSignalControl(PCControlSendSignalIndex_Ack, PCControlSend_AlignStartAck_CPJT)) |
| | |
| | | |
| | | //pDitRawClient->SetReviewStart(); |
| | | |
| | | Sleep(500); |
| | | //< SWK 20221226 - #4403 DEL > |
| | | // Sleep(500); |
| | | |
| | | //CString strJudgeData; |
| | | m_pSP2P->ISP2P_GetSignalControl()->WriteData(_T("17110"), sizeof(pDitRawClient->GetGlassData()->m_strGlassJudge), pDitRawClient->GetGlassData()->m_strGlassJudge); |
| | | m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::IN] ReadRawFile!")); |
| | |
| | | int nTotalPlanCount = CalculatePlanData(pGlassResult); |
| | | m_pSP2P->ISP2P_DisplayMessage(_T("[Read Raw File] Review All Plan Total Count : %d"), nTotalPlanCount); |
| | | |
| | | Sleep(1000); |
| | | //< SWK 20221226 - #4403 DEL > |
| | | // Sleep(1000); |
| | | // send review ready |
| | | //#3584 210817 LYW CF AOI Review 시뮬레이션 기능 정상화 MOD START |
| | | if (GetSimulationMode() == FALSE) |
| | |
| | | //#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!")); |
| | | |
| | | |
| | | m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::IN] FileMonitor Thread Start Ready")); |
| | | m_pSP2P->ISP2P_GetReviewProcessor()->FileMonitorThreadStart(); /* < KJG 20230630 - #4517 ADD Start >*/ |
| | | m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::IN] FileMonitor Thread Start Complete")); |
| | | } |
| | | |
| | | |
| | |
| | | int nCount = pRcpReviewInfo->GetRcpJudgeCellDefectCount(); |
| | | int nOK; |
| | | |
| | | int nCellTRJudge = 0, nCelllOKJuge = 0, nCelllPRJuge = 0; |
| | | int nCellTRJudge = 0, nCelllOKJuge = 0, nCelllPRJuge = 0, nCelllPTJuge = 0; |
| | | m_pSP2P->ISP2P_DisplayMessage(_T("[ReviewEnd] Start Cell Defect Rejudge")); |
| | | for (int nCellIndex = 0; nCellIndex < nCellCount; nCellIndex++) |
| | | { |
| | |
| | | { |
| | | nCelllPRJuge = nCelllPRJuge + 1; |
| | | } |
| | | /* < KEJ 20231123 - #4669 ADD Start > */ |
| | | else if (pRawData->GetCellData(nCellIndex)->m_nJudgement == Judge_PT_CPJT) |
| | | { |
| | | nCelllPTJuge = nCelllPTJuge + 1; |
| | | } |
| | | /* < KEJ 20231123 - #4669 ADD End > */ |
| | | |
| | | BOOL bReJudge = FALSE, bSubReJudge = FALSE; |
| | | |
| | |
| | | m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::ReviewEnd] [%02d]ELSE Cell DefectPRCount[%d] [%d]"), nCellIndex, pRawData->GetCellData(nCellIndex)->m_nDefectNumJudgePR, pRcpJudgeInfo->GetJudgeCount()); |
| | | } |
| | | break; |
| | | /* < KEJ 20231123 - #4669 ADD Start > */ |
| | | case JudgeType_T8_PT: |
| | | if (pRawData->GetCellData(nCellIndex)->m_nDefectNumJudgePT >= pRcpJudgeInfo->GetJudgeCount()) |
| | | { |
| | | m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::ReviewEnd] [%02d]Cell DefectPTCount[%d] >= [%d]"), nCellIndex, pRawData->GetCellData(nCellIndex)->m_nDefectNumJudgePT, pRcpJudgeInfo->GetJudgeCount()); |
| | | bReJudge = TRUE; |
| | | } |
| | | else |
| | | { |
| | | m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::ReviewEnd] [%02d]ELSE Cell DefectPTCount[%d] [%d]"), nCellIndex, pRawData->GetCellData(nCellIndex)->m_nDefectNumJudgePT, pRcpJudgeInfo->GetJudgeCount()); |
| | | } |
| | | break; |
| | | /* < KEJ 20231123 - #4669 ADD End > */ |
| | | } |
| | | |
| | | // 2nd condition |
| | |
| | | m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::ReviewEnd] [%02d]ELSE Cell DefectPRCount[%d] [%d]"), nCellIndex, pRawData->GetCellData(nCellIndex)->m_nDefectNumJudgePR, pRcpJudgeInfo->GetSubJudgeCount()); |
| | | } |
| | | break; |
| | | /* < KEJ 20231123 - #4669 ADD Start > */ |
| | | case JudgeType_T8_PT: |
| | | if (pRawData->GetCellData(nCellIndex)->m_nDefectNumJudgePT <= pRcpJudgeInfo->GetSubJudgeCount()) |
| | | { |
| | | m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::ReviewEnd] [%02d]Cell DefectPTCount[%d] <= [%d]"), nCellIndex, pRawData->GetCellData(nCellIndex)->m_nDefectNumJudgePT, pRcpJudgeInfo->GetSubJudgeCount()); |
| | | bSubReJudge = TRUE; |
| | | } |
| | | else |
| | | { |
| | | m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::ReviewEnd] [%02d]ELSE Cell DefectPTCount[%d] [%d]"), nCellIndex, pRawData->GetCellData(nCellIndex)->m_nDefectNumJudgePT, pRcpJudgeInfo->GetSubJudgeCount()); |
| | | } |
| | | break; |
| | | /* < KEJ 20231123 - #4669 ADD End > */ |
| | | } |
| | | |
| | | if (bReJudge & bSubReJudge) |
| | |
| | | { |
| | | nCelllOKJuge = 0; |
| | | } |
| | | m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::ReviewEnd] [%02d]Cell [%02d]Condition CELL COUNT OK:[%d] TR[%d] PR[%d]") |
| | | m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::ReviewEnd] [%02d]Cell [%02d]Condition CELL COUNT OK:[%d] TR[%d] PR[%d] PT[%d]") |
| | | , nCellIndex, nIdx, nCelllOKJuge, nCellTRJudge,nCelllPRJuge); |
| | | } |
| | | else if (pRawData->GetCellData(nCellIndex)->m_nJudgement==Judge_PR_CPJT) |
| | |
| | | { |
| | | nCelllPRJuge = 0; |
| | | } |
| | | m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::ReviewEnd] [%02d]Cell [%02d]Condition CELL COUNT OK:[%d] TR[%d] PR[%d]") |
| | | , nCellIndex, nIdx, nCelllOKJuge, nCellTRJudge, nCelllPRJuge); |
| | | m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::ReviewEnd] [%02d]Cell [%02d]Condition CELL COUNT OK:[%d] TR[%d] PR[%d] PT[%d]") |
| | | , nCellIndex, nIdx, nCelllOKJuge, nCellTRJudge, nCelllPRJuge, nCelllPTJuge); |
| | | } |
| | | /* < KEJ 20231123 - #4669 ADD Start > */ |
| | | else if (pRawData->GetCellData(nCellIndex)->m_nJudgement == Judge_PT_CPJT) |
| | | { |
| | | int nbfJudge = pRawData->GetCellData(nCellIndex)->m_nJudgement; |
| | | pRawData->GetCellData(nCellIndex)->m_nJudgement = Judge_TR_CPJT; |
| | | m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::ReviewEnd] [%02d]Cell [%02d]Condition : ReJudge Cell Defect Grade! [%d]->[%s]") |
| | | , nCellIndex, nIdx, nbfJudge, pRcpJudgeInfo->GetReJudgeCode()); |
| | | |
| | | |
| | | nCelllPTJuge -= 1; |
| | | nCellTRJudge += 1; |
| | | |
| | | if (nCelllPTJuge < 0) |
| | | { |
| | | nCelllPTJuge = 0; |
| | | } |
| | | m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::ReviewEnd] [%02d]Cell [%02d]Condition CELL COUNT OK:[%d] TR[%d] PR[%d] PT[%d]") |
| | | , nCellIndex, nIdx, nCelllOKJuge, nCellTRJudge, nCelllPRJuge, nCelllPTJuge); |
| | | } |
| | | /* < KEJ 20231123 - #4669 ADD End > */ |
| | | else |
| | | { |
| | | |
| | | m_pSP2P->ISP2P_DisplayMessage(_T("[TEST Process::ReviewEnd][%02d]Cell [%02d] ReJudge Cell Defect Grade! [%s]->[%s]"), nCellIndex, nIdx,_T("TR"), _T("TR")); |
| | | m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::ReviewEnd] [%02d]Cell [%02d]Condition CELL COUNT OK:[%d] TR[%d] PR[%d]") |
| | | , nCellIndex, nIdx, nCelllOKJuge, nCellTRJudge, nCelllPRJuge); |
| | | m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::ReviewEnd] [%02d]Cell [%02d]Condition CELL COUNT OK:[%d] TR[%d] PR[%d] PT[%d]") |
| | | , nCellIndex, nIdx, nCelllOKJuge, nCellTRJudge, nCelllPRJuge, nCelllPTJuge); |
| | | } |
| | | } |
| | | else if (pRcpJudgeInfo->GetReJudgeType() == JudgeType_T8_PR) |
| | |
| | | { |
| | | nCelllOKJuge = 0; |
| | | } |
| | | m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::ReviewEnd] [%02d]Cell [%02d]Condition CELL COUNT OK:[%d] TR[%d] PR[%d]") |
| | | , nCellIndex, nIdx, nCelllOKJuge, nCellTRJudge, nCelllPRJuge); |
| | | m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::ReviewEnd] [%02d]Cell [%02d]Condition CELL COUNT OK:[%d] TR[%d] PR[%d] PT[%d]") |
| | | , nCellIndex, nIdx, nCelllOKJuge, nCellTRJudge, nCelllPRJuge, nCelllPTJuge); |
| | | } |
| | | if (pRawData->GetCellData(nCellIndex)->m_nJudgement == Judge_TR_CPJT) |
| | | { |
| | |
| | | { |
| | | nCellTRJudge = 0; |
| | | } |
| | | m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::ReviewEnd] [%02d]Cell [%02d]Condition CELL COUNT OK:[%d] TR[%d] PR[%d]") |
| | | , nCellIndex, nIdx, nCelllOKJuge, nCellTRJudge, nCelllPRJuge); |
| | | m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::ReviewEnd] [%02d]Cell [%02d]Condition CELL COUNT OK:[%d] TR[%d] PR[%d] PT[%d]") |
| | | , nCellIndex, nIdx, nCelllOKJuge, nCellTRJudge, nCelllPRJuge, nCelllPTJuge); |
| | | } |
| | | /* < KEJ 20231123 - #4669 ADD Start > */ |
| | | if (pRawData->GetCellData(nCellIndex)->m_nJudgement == Judge_PT_CPJT) |
| | | { |
| | | int nbfJudge = pRawData->GetCellData(nCellIndex)->m_nJudgement; |
| | | pRawData->GetCellData(nCellIndex)->m_nJudgement = Judge_PR_CPJT; |
| | | m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::ReviewEnd] [%02d]Cell [%02d]Condition : ReJudge Cell Defect Grade! [%d]->[%s]") |
| | | , nCellIndex, nIdx, nbfJudge, pRcpJudgeInfo->GetReJudgeCode()); |
| | | |
| | | |
| | | nCelllPTJuge -= 1; |
| | | nCelllPRJuge += 1; |
| | | |
| | | if (nCelllPTJuge < 0) |
| | | { |
| | | nCelllPTJuge = 0; |
| | | } |
| | | m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::ReviewEnd] [%02d]Cell [%02d]Condition CELL COUNT OK:[%d] TR[%d] PR[%d] PT[%d]") |
| | | , nCellIndex, nIdx, nCelllOKJuge, nCellTRJudge, nCelllPRJuge, nCelllPTJuge); |
| | | } |
| | | /* < KEJ 20231123 - #4669 ADD End > */ |
| | | else |
| | | { |
| | | |
| | | m_pSP2P->ISP2P_DisplayMessage(_T("[TEST Process::ReviewEnd][%02d]Cell [%02d] ReJudge Cell Defect Grade! [%s]->[%s]"), nCellIndex, nIdx, _T("PR"), _T("PR")); |
| | | m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::ReviewEnd] [%02d]Cell [%02d]Condition CELL COUNT OK:[%d] TR[%d] PR[%d]") |
| | | , nCellIndex, nIdx, nCelllOKJuge, nCellTRJudge, nCelllPRJuge); |
| | | m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::ReviewEnd] [%02d]Cell [%02d]Condition CELL COUNT OK:[%d] TR[%d] PR[%d] PT[%d]") |
| | | , nCellIndex, nIdx, nCelllOKJuge, nCellTRJudge, nCelllPRJuge, nCelllPTJuge); |
| | | } |
| | | } |
| | | /* < KEJ 20231123 - #4669 ADD Start > */ |
| | | else if (pRcpJudgeInfo->GetReJudgeType() == JudgeType_T8_PT) |
| | | { |
| | | if (pRawData->GetCellData(nCellIndex)->m_nJudgement == Judge_OK_CPJT) |
| | | { |
| | | int nbfJudge = pRawData->GetCellData(nCellIndex)->m_nJudgement; |
| | | pRawData->GetCellData(nCellIndex)->m_nJudgement = Judge_PT_CPJT; |
| | | m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::ReviewEnd] [%02d]Cell [%02d]Condition : ReJudge Cell Defect Grade! [%d]->[%s]") |
| | | , nCellIndex, nIdx, nbfJudge, pRcpJudgeInfo->GetReJudgeCode()); |
| | | |
| | | |
| | | nCelllOKJuge -= 1; |
| | | nCelllPTJuge += 1; |
| | | |
| | | if (nCelllOKJuge < 0) |
| | | { |
| | | nCelllOKJuge = 0; |
| | | } |
| | | m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::ReviewEnd] [%02d]Cell [%02d]Condition CELL COUNT OK:[%d] TR[%d] PR[%d] PT[%d]") |
| | | , nCellIndex, nIdx, nCelllOKJuge, nCellTRJudge, nCelllPRJuge, nCelllPTJuge); |
| | | } |
| | | if (pRawData->GetCellData(nCellIndex)->m_nJudgement == Judge_TR_CPJT) |
| | | { |
| | | int nbfJudge = pRawData->GetCellData(nCellIndex)->m_nJudgement; |
| | | pRawData->GetCellData(nCellIndex)->m_nJudgement = Judge_PT_CPJT; |
| | | m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::ReviewEnd] [%02d]Cell [%02d]Condition : ReJudge Cell Defect Grade! [%d]->[%s]") |
| | | , nCellIndex, nIdx, nbfJudge, pRcpJudgeInfo->GetReJudgeCode()); |
| | | |
| | | |
| | | nCellTRJudge -= 1; |
| | | nCelllPTJuge += 1; |
| | | |
| | | if (nCellTRJudge < 0) |
| | | { |
| | | nCellTRJudge = 0; |
| | | } |
| | | m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::ReviewEnd] [%02d]Cell [%02d]Condition CELL COUNT OK:[%d] TR[%d] PR[%d] PT[%d]") |
| | | , nCellIndex, nIdx, nCelllOKJuge, nCellTRJudge, nCelllPRJuge, nCelllPTJuge); |
| | | } |
| | | if (pRawData->GetCellData(nCellIndex)->m_nJudgement == Judge_PR_CPJT) |
| | | { |
| | | int nbfJudge = pRawData->GetCellData(nCellIndex)->m_nJudgement; |
| | | pRawData->GetCellData(nCellIndex)->m_nJudgement = Judge_PT_CPJT; |
| | | m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::ReviewEnd] [%02d]Cell [%02d]Condition : ReJudge Cell Defect Grade! [%d]->[%s]") |
| | | , nCellIndex, nIdx, nbfJudge, pRcpJudgeInfo->GetReJudgeCode()); |
| | | |
| | | |
| | | nCelllPRJuge -= 1; |
| | | nCelllPTJuge += 1; |
| | | |
| | | if (nCelllPRJuge < 0) |
| | | { |
| | | nCelllPRJuge = 0; |
| | | } |
| | | m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::ReviewEnd] [%02d]Cell [%02d]Condition CELL COUNT OK:[%d] TR[%d] PR[%d] PT[%d]") |
| | | , nCellIndex, nIdx, nCelllOKJuge, nCellTRJudge, nCelllPRJuge, nCelllPTJuge); |
| | | } |
| | | else |
| | | { |
| | | |
| | | m_pSP2P->ISP2P_DisplayMessage(_T("[TEST Process::ReviewEnd][%02d]Cell [%02d] ReJudge Cell Defect Grade! [%s]->[%s]"), nCellIndex, nIdx, _T("PT"), _T("PT")); |
| | | m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::ReviewEnd] [%02d]Cell [%02d]Condition CELL COUNT OK:[%d] TR[%d] PR[%d] PT[%d]") |
| | | , nCellIndex, nIdx, nCelllOKJuge, nCellTRJudge, nCelllPRJuge, nCelllPTJuge); |
| | | } |
| | | } |
| | | /* < KEJ 20231123 - #4669 ADD End > */ |
| | | else//OK |
| | | { |
| | | if (pRawData->GetCellData(nCellIndex)->m_nJudgement == Judge_OK_CPJT || pRawData->GetCellData(nCellIndex)->m_nJudgement == Judge_Unknown_CPJT) |
| | | { |
| | | m_pSP2P->ISP2P_DisplayMessage(_T("[TEST Process::ReviewEnd][%02d]Cell [%02d] ReJudge Cell Defect Grade! [%s]->[%s]"), nCellIndex, nIdx,_T("OK"), _T("OK")); |
| | | m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::ReviewEnd] [%02d]Cell [%02d]Condition CELL COUNT OK:[%d] TR[%d] PR[%d]") |
| | | , nCellIndex, nIdx, nCelllOKJuge, nCellTRJudge, nCelllPRJuge); |
| | | m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::ReviewEnd] [%02d]Cell [%02d]Condition CELL COUNT OK:[%d] TR[%d] PR[%d] PT[%d]") |
| | | , nCellIndex, nIdx, nCelllOKJuge, nCellTRJudge, nCelllPRJuge, nCelllPTJuge); |
| | | } |
| | | else |
| | | { |
| | |
| | | nCelllPRJuge = 0; |
| | | } |
| | | } |
| | | m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::ReviewEnd] [%02d]Cell [%02d]Condition CELL COUNT OK:[%d] TR[%d] PR[%d]") |
| | | , nCellIndex, nIdx, nCelllOKJuge, nCellTRJudge, nCelllPRJuge); |
| | | /* < KEJ 20231123 - #4669 ADD Start > */ |
| | | else if (pRawData->GetCellData(nCellIndex)->m_nJudgement == Judge_PT_CPJT) |
| | | { |
| | | nCelllOKJuge += 1; |
| | | nCelllPTJuge -= 1; |
| | | |
| | | if (nCelllPTJuge < 0) |
| | | { |
| | | nCelllPTJuge = 0; |
| | | } |
| | | } |
| | | /* < KEJ 20231123 - #4669 ADD End > */ |
| | | m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::ReviewEnd] [%02d]Cell [%02d]Condition CELL COUNT OK:[%d] TR[%d] PR[%d] PT[%d]") |
| | | , nCellIndex, nIdx, nCelllOKJuge, nCellTRJudge, nCelllPRJuge, nCelllPTJuge); |
| | | |
| | | } |
| | | } |
| | |
| | | m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::ReviewEnd] [%02d]ELSE GLASS Defect PR Count[%d] [%d]"), nIdx, pRawData->GetGlassData()->m_nDefectNumJudgePR, pRcpJudgeInfo->GetJudgeCount()); |
| | | } |
| | | break; |
| | | /* < KEJ 20231123 - #4669 ADD Start > */ |
| | | case JudgeType_T8_PT: |
| | | if (pRawData->GetGlassData()->m_nDefectNumJudgePT >= pRcpJudgeInfo->GetJudgeCount()) |
| | | { |
| | | m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::ReviewEnd] [%02d]GLASS Defect PT Count[%d] >= [%d]"), nIdx, pRawData->GetGlassData()->m_nDefectNumJudgePT, pRcpJudgeInfo->GetJudgeCount()); |
| | | bReJudge = TRUE; |
| | | } |
| | | else |
| | | { |
| | | m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::ReviewEnd] [%02d]ELSE GLASS Defect PT Count[%d] [%d]"), nIdx, pRawData->GetGlassData()->m_nDefectNumJudgePT, pRcpJudgeInfo->GetJudgeCount()); |
| | | } |
| | | break; |
| | | /* < KEJ 20231123 - #4669 ADD End > */ |
| | | |
| | | } |
| | | |
| | |
| | | m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::ReviewEnd] [%02d]ELSE GLASS Defect PR Count[%d] [%d]"), nIdx, pRawData->GetGlassData()->m_nDefectNumJudgePR, pRcpJudgeInfo->GetSubJudgeCount()); |
| | | } |
| | | break; |
| | | /* < KEJ 20231123 - #4669 ADD Start > */ |
| | | case JudgeType_T8_PT: |
| | | if (pRawData->GetGlassData()->m_nDefectNumJudgePT <= pRcpJudgeInfo->GetSubJudgeCount()) |
| | | { |
| | | bSubReJudge = TRUE; |
| | | m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::ReviewEnd] [%02d]GLASS Defect PT Count[%d] <= [%d]"), nIdx, pRawData->GetGlassData()->m_nDefectNumJudgePT, pRcpJudgeInfo->GetSubJudgeCount()); |
| | | } |
| | | else { |
| | | m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::ReviewEnd] [%02d]ELSE GLASS Defect PT Count[%d] [%d]"), nIdx, pRawData->GetGlassData()->m_nDefectNumJudgePT, pRcpJudgeInfo->GetSubJudgeCount()); |
| | | } |
| | | break; |
| | | /* < KEJ 20231123 - #4669 ADD End > */ |
| | | |
| | | } |
| | | |
| | |
| | | tmServerLoadingTime = CTime::GetCurrentTime(); |
| | | 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()); |
| | | //< SWK 20221226 - #4403 MOD > |
| | | // strImagePath.Format(_T("%s\\%s_%04d%02d%02d%02d%02d%02d"), strGlassID, tmServerLoadingTime.GetYear(), tmServerLoadingTime.GetMonth(), tmServerLoadingTime.GetDay(), tmServerLoadingTime.GetHour(), tmServerLoadingTime.GetMinute(), tmServerLoadingTime.GetSecond()); |
| | | strImagePath.Format(_T("%s_%04d%02d%02d%02d%02d%02d"), strGlassID, tmServerLoadingTime.GetYear(), tmServerLoadingTime.GetMonth(), tmServerLoadingTime.GetDay(), tmServerLoadingTime.GetHour(), tmServerLoadingTime.GetMinute(), tmServerLoadingTime.GetSecond()); |
| | | CreateDirectory(strPath, NULL); |
| | | pReviewProcessor->SetUploadImagePath(strPath); |
| | | pReviewProcessor->SetReviewImagePath(strImagePath); |
| | |
| | | // set offset |
| | | ApplyMotorOffset(pReview->nModuleIdx, pReview->nZoomIdx, MotorOffsetCamera + MotorOffsetMag+MotorOffset_Glass, dDefectPosX, dDefectPosY); |
| | | |
| | | m_pSP2P->CalcMotorOffSetValue(pReview->nModuleIdx, dDefectPosX, dDefectPosY); //< KEJ 20230622 - #4526 ADD > |
| | | //xpostemp = dDefectPosX; |
| | | //ypostemp = dDefectPosY; |
| | | |
| | |
| | | // set offset |
| | | ApplyMotorOffset(pReview->nModuleIdx, pReview->nZoomIdx, MotorOffsetCamera + MotorOffsetMag + MotorOffset_Glass, dDefectPosX, dDefectPosY); |
| | | |
| | | m_pSP2P->CalcMotorOffSetValue(pReview->nModuleIdx, dDefectPosX, dDefectPosY); //< KEJ 20230622 - #4526 ADD > |
| | | //xpostemp = dDefectPosX; |
| | | //ypostemp = dDefectPosY; |
| | | |
| | |
| | | // set offset |
| | | ApplyMotorOffset(pWsi->nModuleIdx, -1, MotorOffsetCamera + MotorOffsetWSI + MotorOffset_Glass, dDefectPosX, dDefectPosY); |
| | | |
| | | m_pSP2P->CalcMotorOffSetValue(pWsi->nModuleIdx, dDefectPosX, dDefectPosY); //< KEJ 20230622 - #4526 ADD > |
| | | |
| | | m_pSP2P->GetOffSetValue(nModuleIdx, pWsi->nAOICameraIdx, pWsi->nAOIScanIdx, pWsi->nUMOriginX / 1000.0, xpostemp, ypostemp); |
| | | |
| | | xpostemp = floor(xpostemp * 1000); |