| | |
| | | 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; |
| | | } |
| | | |
| | |
| | | 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!")); |
| | | |
| | |
| | | // m_pSP2P->ISP2P_GetWSIControl(1)->SendWsiAfmSafePosMove(); |
| | | //} |
| | | //Sleep(5000); |
| | | SendResultToSignalControl(PCControlSendData_ReviewResult_CPJT, SIGNAL_SEND_RESULT_SUCCESS); |
| | | SendSignalToSignalControl(PCControlSendSignalIndex_Seq, PCControlSend_ReviewComplete_CPJT); |
| | | if (GetProcessStatus() != ProcessReviewEnd_CPJT && GetProcessStatus() != ProcessReviewUnloding_CPJT) |
| | | { |
| | | 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!")); |
| | | //LONGREUN |
| | | //RecvSignalToSignalControl(PCControlRecvSignalIndex_Seq, 4); |
| | | m_pSP2P->ISP2P_UpdateReviewProcessStatus(ReviewProcessStatus_None, nPlanIndex); |
| | | |
| | | AFM_SetAFMTracking(FALSE); |
| | |
| | | if (( nTotalCount += pGlassResult->GetTotalSReviewResultCount()) > 0) |
| | | { |
| | | m_pSP2P->ISP2P_DisplayMessage(_T("[Sequence Processor] Review Plan Start!")); |
| | | //LYW DCOLL 임시조치 |
| | | //LYW DCOLL �ӽ���ġ |
| | | CDitGlassRawClient *pDitRawClient = CDitGlassRawClient::GetInstance(); |
| | | if (pDitRawClient->isConnect() == TRUE) |
| | | { |
| | |
| | | |
| | | strcpy(pSharedDefectReview->m_strRevImageName, ""); |
| | | } |
| | | //LYW DCOLL 임시조치 |
| | | //LYW DCOLL �ӽ���ġ |
| | | ::Sleep(nWaitTime); |
| | | m_pSP2P->ISP2P_GetReviewProcessor()->ResetGantryDone(); |
| | | bExcute = ReviewStartProcessing(pGlassResult, nPlanIdx); |
| | |
| | | |
| | | CSequenceProcessData* pProcessData = static_cast<CSequenceProcessData*>(pParameter); |
| | | m_nProcessStatus = pProcessData->nProcessStatus; |
| | | //LONGREUN |
| | | //SetSimulationMode(TRUE); |
| | | |
| | | switch(pProcessData->nProcessStatus) |
| | | { |
| | | case ProcessLoading_CPJT: |
| | | Process_Loading(); |
| | | //LONGREUN |
| | | //RecvSignalToSignalControl(PCControlRecvSignalIndex_Seq, 2); |
| | | break; |
| | | |
| | | case ProcessAlignStart_CPJT: |
| | | Process_AlignStart(); |
| | | //LONGREUN |
| | | //RecvSignalToSignalControl(PCControlRecvSignalIndex_Seq, 3); |
| | | break; |
| | | |
| | | case ProcessReadRawFile_CPJT: |
| | | Process_ReadRawFile(); |
| | | //LONGREUN |
| | | //RecvSignalToSignalControl(PCControlRecvSignalIndex_Seq, 1); |
| | | break; |
| | | |
| | | |
| | |
| | | |
| | | case ProcessReviewEnd_CPJT: |
| | | Process_ReviewEnd(); |
| | | //LONGREUN |
| | | //RecvSignalToSignalControl(PCControlRecvSignalIndex_Seq, 5); |
| | | |
| | | break; |
| | | case ProcessReviewUnloding_CPJT: |
| | | Process_ReviewUnloading(); |
| | | //LONGREUN |
| | | //RecvSignalToSignalControl(PCControlRecvSignalIndex_Seq, 0); |
| | | break; |
| | | |
| | | } |
| | | //#3584 210817 LYW CF AOI Review 시뮬레이션 기능 정상화 ADD START |
| | | SetSimulationMode(FALSE); |
| | | //#3584 210817 LYW CF AOI Review 시뮬레이션 기능 정상화 ADD END |
| | | return; |
| | | } |
| | | |
| | |
| | | |
| | | bFileFind = FALSE; |
| | | |
| | | m_pSP2P->ISP2P_GetDiagnosisHistory(); |
| | | /*< LYW 20211109 - #3662 Delete Start >*/ |
| | | //m_pSP2P->ISP2P_GetDiagnosisHistory(); |
| | | /*< LYW 20211109 - #3662 Delete End >*/ |
| | | |
| | | m_pSP2P->ISP2P_SetFirstReviewLeft(TRUE); |
| | | m_pSP2P->ISP2P_SetFirstReviewRight(TRUE); |
| | | |
| | | 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 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!")); |
| | |
| | | { |
| | | 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; |
| | |
| | | |
| | | 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); |
| | |
| | | } |
| | | |
| | | m_pSP2P->ISP2P_DisplayMessage(_T("[Glass Loading] Current Apply Recipe Name : %s"), strRecipefile); |
| | | |
| | | /*< LYW 20220610 - #4185 ADD Start >*/ |
| | | CheckGantryMode(); |
| | | /*< LYW 20220610 - #4185 ADD End >*/ |
| | | |
| | | // recipe data apply |
| | | if(ApplyRecipeDataToGlassResult(pGlassResult)==FALSE) |
| | |
| | | |
| | | // 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(); |
| | |
| | | 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!")); |
| | | |
| | |
| | | { |
| | | 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!")); |
| | | //#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(); |
| | | |
| | |
| | | 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 |
| | | { |
| | |
| | | { |
| | | if(pAlignCameraControl->AlignCameraDisconnectCheck() == 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 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()) |
| | | { |
| | |
| | | { |
| | | Sleep(1000); |
| | | { |
| | | 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 |
| | | //SendResultToSignalControl(PCControlSendData_AlignResult_CPJT, SIGNAL_SEND_RESULT_FAIL); |
| | | //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!")); |
| | | } |
| | | } |
| | | } |
| | | |
| | | |
| | |
| | | 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] Find Raw File Fail")); |
| | | //#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; |
| | | } |
| | | |
| | |
| | | |
| | | 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 |
| | | { |
| | |
| | | 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!")); |
| | | } |
| | | } |
| | | } |
| | |
| | | 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; |
| | |
| | | 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 |
| | | { |
| | |
| | | { |
| | | 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!")); |
| | | } |
| | | |
| | | CGlassResult* pGlassResult = m_pSP2P->ISP2P_GetCurrentGlassResult(); |
| | | if (pGlassResult == NULL) return; |
| | | |
| | | //#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) |
| | | if (GetSimulationMode() == FALSE && m_pSP2P->ISP2P_GetWSIControl(0)!=NULL) |
| | | { |
| | | m_pSP2P->ISP2P_GetWSIControl(0)->SetWsiTimeOver(); |
| | | m_pSP2P->ISP2P_GetWSIControl(1)->SetWsiTimeOver(); |
| | | /*< LYW 20211015 - #3662 ADD Start >*/ |
| | | // m_pSP2P->ISP2P_GetWSIControl(0)->SetWsiEnd(); |
| | | // m_pSP2P->ISP2P_GetWSIControl(1)->SetWsiEnd(); |
| | | /*< LYW 20211015 - #3662 ADD End >*/ |
| | | } |
| | | if (GetLastPointCheck() == FALSE) |
| | | { |
| | | Sleep(1000); |
| | | } |
| | | ReJudgeProcessing(m_pDitGlassRaw); |
| | | /*< LYW 20220401 - ##4006 MOD Start >*/ |
| | | if (pGlassResult->m_AlignResult.GetResultCode() == Align_Success) |
| | | { |
| | | m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::ReviewEnd] Review ReJudgeProcessing Startl!")); |
| | | ReJudgeProcessing(m_pDitGlassRaw); |
| | | } |
| | | else |
| | | { |
| | | m_pSP2P->ISP2P_DisplayMessage(_T("Align Code = %d, ReJudgeProcessing SKIPl!"), pGlassResult->m_AlignResult.GetResultCode()); |
| | | } |
| | | /*< LYW 20220401 - ##4006 MOD End >*/ |
| | | //Origin |
| | | //ReJudgeProcessing(m_pDitGlassRaw); |
| | | m_pDitGlassRaw->GetGlassData()->m_tmReviewEnd = CTime::GetCurrentTime(); |
| | | if (m_pDitGlassRaw->isConnect() != FALSE) |
| | | { |
| | |
| | | |
| | | 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(); |
| | | if (pGlassResult==NULL) return; |
| | | |
| | | // review camera stop |
| | | ReviewCamera_CameraControl(CameraControlStop); |
| | |
| | | |
| | | } |
| | | |
| | | g_pLog->DisplayMessage(_T("History map Start")); |
| | | int nGlassResultCount = 0; |
| | | CGlassResult* pHistoryResult = m_pSP2P->ISP2P_GetNewHistoryResult(nGlassResultCount); //taek 210201 |
| | | g_pLog->DisplayMessage(_T("History map Copy")); |
| | | ReadAOIMemory2(pHistoryResult); |
| | | g_pLog->DisplayMessage(_T("History map TransferData")); |
| | | UpdateHistoryResultFromTransferData(pHistoryResult, pGlassResult); |
| | | g_pLog->DisplayMessage(_T("History Button Enable")); |
| | | m_pSP2P->ISP2P_GetDiagnosisHistory2(); |
| | | /*< LYW 20211109 - #3662 Delete Start >*/ |
| | | // g_pLog->DisplayMessage(_T("History map Start")); |
| | | // int nGlassResultCount = 0; |
| | | // CGlassResult* pHistoryResult = m_pSP2P->ISP2P_GetNewHistoryResult(nGlassResultCount); //taek 210201 |
| | | // g_pLog->DisplayMessage(_T("History map Copy")); |
| | | // ReadAOIMemory2(pHistoryResult); |
| | | // g_pLog->DisplayMessage(_T("History map TransferData")); |
| | | // UpdateHistoryResultFromTransferData(pHistoryResult, pGlassResult); |
| | | // g_pLog->DisplayMessage(_T("History Button Enable")); |
| | | // m_pSP2P->ISP2P_GetDiagnosisHistory2(); |
| | | /*< LYW 20211109 - #3662 Delete End >*/ |
| | | |
| | | /*int nModuleCount = m_pSP2P->ISP2P_GetModuleStatusCount(); |
| | | for (int nModuleIdx = 0; nModuleIdx < nModuleCount; nModuleIdx++) |
| | |
| | | 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!")); |
| | | } |
| | |
| | | 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!")); |
| | | |
| | | } |
| | | |
| | |
| | | |
| | | 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) |
| | |
| | | { |
| | | strPath.Format(_T("%s\\%s"), pNetworkInfo->m_strAlignImagePath, strGlassID); |
| | | pAlignCameraControl->SetSaveImageBasePath(strPath); |
| | | strPath.Format(_T("D:\\ResultData\\AlignOK\\%s"), strGlassID); |
| | | pAlignCameraControl->SetSaveImageOKPath(strPath); |
| | | strPath.Format(_T("D:\\ResultData\\AlignNG\\%s"), strGlassID); |
| | | pAlignCameraControl->SetSaveImageNGPath(strPath); |
| | | } |
| | | m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::Loading] Make Align image path End ")); |
| | | } |
| | |
| | | pGlassResult->m_AlignRecipe.dMatchingRate = pRsRcpAlignInfo->m_dMatchingRate; |
| | | pGlassResult->m_AlignRecipe.strFirstImageFile = pRsRcpAlignInfo->m_strFirstImageFile; |
| | | pGlassResult->m_AlignRecipe.strSecondImageFile = pRsRcpAlignInfo->m_strSecondImageFile; |
| | | /*< LYW 20211012 - #3671 ADD Start >*/ |
| | | pGlassResult->m_AlignRecipe.strFirstAssistantImageFile = pRsRcpAlignInfo->m_strFirstAssistantImageFile; |
| | | pGlassResult->m_AlignRecipe.strSecondAssistantImageFile = pRsRcpAlignInfo->m_strSecondAssistantImageFile; |
| | | pGlassResult->m_AlignRecipe.strMatchingPixelStandard = pRsRcpAlignInfo->m_strMatchingPixelStandard; |
| | | pGlassResult->m_AlignRecipe.strMatchingAlarmCondition = pRsRcpAlignInfo->m_strMatchingAlarmCondition; |
| | | /*< LYW 20211012 - #3671 ADD End >*/ |
| | | pGlassResult->m_AlignRecipe.strTotalPitchImageFile = pRsRcpAlignInfo->m_strTotalPitchImageFile; |
| | | |
| | | // edge find param |
| | |
| | | { |
| | | int XAddr = pMotorControl->GetGantryCollisionXAddr(pModuleStatus->GetGantryIndex()); |
| | | g_pLog->DisplayMessage(_T("[Collision Position Set Fail] %d Module, Addr: %d, PosX: %.3lfmm"), nModuleIdx, XAddr, dCollisionPosX); |
| | | return 0; |
| | | /*< LYW 20220610 - #4185 Delete Start >*/ |
| | | //return 0; |
| | | /*< LYW 20220610 - #4185 Delete End >*/ |
| | | } |
| | | |
| | | } |
| | |
| | | { |
| | | int XAddr = pMotorControl->GetGantryCollisionXAddr(pModuleStatus->GetGantryIndex()); |
| | | g_pLog->DisplayMessage(_T("[Collision Position Set Fail] %d Module, Addr: %d, PosX: %.3lfmm"), nModuleIdx, XAddr, dCollisionPosX); |
| | | return 0; |
| | | /*< LYW 20220610 - #4185 Delete Start >*/ |
| | | //return 0; |
| | | /*< LYW 20220610 - #4185 Delete End >*/ |
| | | } |
| | | |
| | | } |
| | |
| | | SetWsiType(0); |
| | | WSIAllReadySignal(1); |
| | | Sleep(1000); |
| | | |
| | | /*< LYW 20211028 - #3718 ADD Start >*/ |
| | | // WSI Redeay 송신후 Review TimeOver 1회 추가 체크 |
| | | if (GetProcessStatus() == ProcessReviewEnd_CPJT || GetProcessStatus() == ProcessReviewUnloding_CPJT) |
| | | { |
| | | g_pLog->DisplayMessage(_T("[ProcessStop] WSI StartProcessing Sequence Stop Status : %d"), GetProcessStatus()); |
| | | return TRUE; |
| | | } |
| | | /*< LYW 20211028 - #3718 ADD End >*/ |
| | | |
| | | if(!WSIAllStartSignal()) |
| | | { |
| | | g_pLog->DisplayMessage(_T("[WSI] WSI Start Fail!!")); |
| | |
| | | { |
| | | int XAddr = pMotorControl->GetGantryCollisionXAddr(pModuleStatus->GetGantryIndex()); |
| | | g_pLog->DisplayMessage(_T("[Collision Position Set Fail] %d Module, Addr: %d, PosX: %.3lfmm"), nModuleIdx, XAddr, dCollisionPosX); |
| | | return 0; |
| | | /*< LYW 20220610 - #4185 Delete Start >*/ |
| | | //return 0; |
| | | /*< LYW 20220610 - #4185 Delete End >*/ |
| | | } |
| | | } |
| | | |
| | |
| | | int nReviewAliveCamera01 = 0; |
| | | |
| | | //foucs |
| | | nRev_Cam1_Image_Contrast = m_pSP2P->ISP2P_GetCurrentGlassResult()->nReview00ImageContrast * 1000; |
| | | nRev_Cam2_Image_Contrast = m_pSP2P->ISP2P_GetCurrentGlassResult()->nReview01ImageContrast * 1000; |
| | | /*< LYW 20211109 - #3662 MOD Start >*/ |
| | | nRev_Cam1_Image_Contrast = m_pSP2P->ISP2P_GetReview00ImageContrast() * 1000; |
| | | nRev_Cam2_Image_Contrast = m_pSP2P->ISP2P_GetReview01ImageContrast() * 1000; |
| | | /*< LYW 20211109 - #3662 MOD End >*/ |
| | | /*< Origin Code >*/ |
| | | // nRev_Cam1_Image_Contrast = m_pSP2P->ISP2P_GetCurrentGlassResult()->nReview00ImageContrast * 1000; |
| | | // nRev_Cam2_Image_Contrast = m_pSP2P->ISP2P_GetCurrentGlassResult()->nReview01ImageContrast * 1000; |
| | | |
| | | //nRev_PC_HDD_CHECK = GetDiskUsage() * 1000; |
| | | //nWSI1_PC_HDD_CHECK = nRev_PC_HDD_CHECK;//GetDiskUsage() * 1000; |
| | |
| | | pSignalControl->WritePacketData(_T("16136"), sizeof(nReviewVersion), (short*)&nReviewVersion); |
| | | pSignalControl->WritePacketData(_T("16140"), sizeof(nWSI00Version), (short*)&nWSI00Version); |
| | | pSignalControl->WritePacketData(_T("16144"), sizeof(nWSI01Version), (short*)&nWSI01Version); |
| | | |
| | | /*< LYW 20220415 - #4086 ADD Start >*/ //추가 필요 |
| | | /*< LYW 20220415 - #4086 ADD End >*/ |
| | | |
| | | |
| | | //CCHImageData pImageData; |
| | |
| | | int nWSI01Version = 20210422; |
| | | int nReviewAliveCamera00 = 1000; |
| | | int nReviewAliveCamera01 = 1000; |
| | | /*< LYW 20220415 - #4086 ADD Start >*/ |
| | | int nFDCGRMSWVersion = 20200101; |
| | | int nFDCFTPUploaderSWVersion = 20200101; |
| | | int nFDCSyncSWVersion = 20200101; |
| | | int nFDCReviewSWVersion = 20200101; |
| | | int nFDCWSISWVersion00 = 20200101; |
| | | int nFDCWSISWVersion01 = 20200101; |
| | | /*< LYW 20220415 - #4086 ADD End >*/ |
| | | |
| | | //foucs |
| | | /*< LYW 20211109 - #3662 MOD Start >*/ |
| | | if (m_pSP2P != NULL) |
| | | { |
| | | if (m_pSP2P->ISP2P_GetCurrentGlassResult() != NULL) |
| | | { |
| | | |
| | | nRev_Cam1_Image_Contrast = m_pSP2P->ISP2P_GetCurrentGlassResult()->nReview00ImageContrast * 1000; |
| | | nRev_Cam2_Image_Contrast = m_pSP2P->ISP2P_GetCurrentGlassResult()->nReview01ImageContrast * 1000; |
| | | nRev_Cam1_Image_Contrast = m_pSP2P->ISP2P_GetReview00ImageContrast() * 1000; |
| | | nRev_Cam2_Image_Contrast = m_pSP2P->ISP2P_GetReview01ImageContrast() * 1000; |
| | | |
| | | if (m_pSP2P->ISP2P_GetCurrentGlassResult()->nReview00ImageContrast <=-2 || m_pSP2P->ISP2P_GetCurrentGlassResult()->nReview00ImageContrast >=999) |
| | | { |
| | | nRev_Cam1_Image_Contrast = 0 * 1000; |
| | | } |
| | | if (m_pSP2P->ISP2P_GetCurrentGlassResult()->nReview00ImageContrast <=-2|| m_pSP2P->ISP2P_GetCurrentGlassResult()->nReview00ImageContrast >=999) |
| | | { |
| | | nRev_Cam2_Image_Contrast = 0 * 1000; |
| | | } |
| | | } |
| | | else |
| | | { |
| | | nRev_Cam1_Image_Contrast = 0; |
| | | nRev_Cam2_Image_Contrast = 0; |
| | | } |
| | | /*< LYW 20220415 - #4086 ADD Start >*/ |
| | | nFDCGRMSWVersion = m_pSP2P->ISP2P_GetGRMSWVersion(); |
| | | nFDCFTPUploaderSWVersion = m_pSP2P->ISP2P_GetFTPUploaderSWVersion(); |
| | | nFDCSyncSWVersion = m_pSP2P->ISP2P_GetSyncSWVersion(); |
| | | nFDCReviewSWVersion = m_pSP2P->ISP2P_GetReviewSWVersion(); |
| | | nFDCWSISWVersion00 = m_pSP2P->ISP2P_GetWSISWVersion(0); |
| | | nFDCWSISWVersion01 = m_pSP2P->ISP2P_GetWSISWVersion(1); |
| | | /*< LYW 20220415 - #4086 ADD End >*/ |
| | | } |
| | | /*< LYW 20211109 - #3662 MOD End >*/ |
| | | /*< Origin Code >*/ |
| | | // if (m_pSP2P != NULL) |
| | | // { |
| | | // if (m_pSP2P->ISP2P_GetCurrentGlassResult() != NULL) |
| | | // { |
| | | // |
| | | // nRev_Cam1_Image_Contrast = m_pSP2P->ISP2P_GetCurrentGlassResult()->nReview00ImageContrast * 1000; |
| | | // nRev_Cam2_Image_Contrast = m_pSP2P->ISP2P_GetCurrentGlassResult()->nReview01ImageContrast * 1000; |
| | | // |
| | | // if (m_pSP2P->ISP2P_GetCurrentGlassResult()->nReview00ImageContrast <=-2 || m_pSP2P->ISP2P_GetCurrentGlassResult()->nReview00ImageContrast >=999) |
| | | // { |
| | | // nRev_Cam1_Image_Contrast = 0 * 1000; |
| | | // } |
| | | // if (m_pSP2P->ISP2P_GetCurrentGlassResult()->nReview00ImageContrast <=-2|| m_pSP2P->ISP2P_GetCurrentGlassResult()->nReview00ImageContrast >=999) |
| | | // { |
| | | // nRev_Cam2_Image_Contrast = 0 * 1000; |
| | | // } |
| | | // } |
| | | // else |
| | | // { |
| | | // nRev_Cam1_Image_Contrast = 0; |
| | | // nRev_Cam2_Image_Contrast = 0; |
| | | // } |
| | | // } |
| | | |
| | | |
| | | |
| | |
| | | pSignalControl->WritePacketData(_T("16116"), sizeof(nRev_Cam1_Image_Contrast), (short*)&nRev_Cam1_Image_Contrast); |
| | | pSignalControl->WritePacketData(_T("16120"), sizeof(nRev_Cam2_Image_Contrast), (short*)&nRev_Cam2_Image_Contrast); |
| | | |
| | | pSignalControl->WritePacketData(_T("16124"), sizeof(nRev_PC_HDD_CHECK), (short*)&nRev_PC_HDD_CHECK); |
| | | pSignalControl->WritePacketData(_T("16128"), sizeof(nWSI1_PC_HDD_CHECK), (short*)&nWSI1_PC_HDD_CHECK); |
| | | pSignalControl->WritePacketData(_T("16132"), sizeof(nWSI2_PC_HDD_CHECK), (short*)&nWSI2_PC_HDD_CHECK); |
| | | /*< LYW 20220415 - #4086 ADD Start >*/ |
| | | pSignalControl->WritePacketData(_T("16124"), sizeof(nFDCSyncSWVersion), (short*)&nFDCSyncSWVersion); |
| | | pSignalControl->WritePacketData(_T("16128"), sizeof(nFDCReviewSWVersion), (short*)&nFDCReviewSWVersion); |
| | | pSignalControl->WritePacketData(_T("16132"), sizeof(nFDCFTPUploaderSWVersion), (short*)&nFDCFTPUploaderSWVersion); |
| | | pSignalControl->WritePacketData(_T("16136"), sizeof(nFDCGRMSWVersion), (short*)&nFDCGRMSWVersion); |
| | | pSignalControl->WritePacketData(_T("16140"), sizeof(nFDCWSISWVersion00), (short*)&nFDCWSISWVersion00); |
| | | pSignalControl->WritePacketData(_T("16144"), sizeof(nFDCWSISWVersion01), (short*)&nFDCWSISWVersion01); |
| | | /*< LYW 20220415 - #4086 ADD End >*/ |
| | | |
| | | pSignalControl->WritePacketData(_T("16136"), sizeof(nReviewVersion), (short*)&nReviewVersion); |
| | | pSignalControl->WritePacketData(_T("16140"), sizeof(nWSI00Version), (short*)&nWSI00Version); |
| | | pSignalControl->WritePacketData(_T("16144"), sizeof(nWSI01Version), (short*)&nWSI01Version); |
| | | // pSignalControl->WritePacketData(_T("16124"), sizeof(nRev_PC_HDD_CHECK), (short*)&nRev_PC_HDD_CHECK); |
| | | // pSignalControl->WritePacketData(_T("16128"), sizeof(nWSI1_PC_HDD_CHECK), (short*)&nWSI1_PC_HDD_CHECK); |
| | | // pSignalControl->WritePacketData(_T("16132"), sizeof(nWSI2_PC_HDD_CHECK), (short*)&nWSI2_PC_HDD_CHECK); |
| | | // |
| | | // pSignalControl->WritePacketData(_T("16136"), sizeof(nReviewVersion), (short*)&nReviewVersion); |
| | | // pSignalControl->WritePacketData(_T("16140"), sizeof(nWSI00Version), (short*)&nWSI00Version); |
| | | // pSignalControl->WritePacketData(_T("16144"), sizeof(nWSI01Version), (short*)&nWSI01Version); |
| | | |
| | | |
| | | return; |
| | |
| | | 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; |
| | | } |
| | | } |
| | |
| | | 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!")); |
| | | } |
| | |
| | | |
| | | case PCControlRecv_ManualMode_CPJT: // manual mode on |
| | | { |
| | | m_pSP2P->ISP2P_GetDiagnosisHistory2(); |
| | | |
| | | /*< LYW 20211109 - #3662 Delete Start >*/ |
| | | //m_pSP2P->ISP2P_GetDiagnosisHistory2(); |
| | | /*< LYW 20211109 - #3662 Delete End >*/ |
| | | |
| | | m_pSP2P->ISP2P_DisplayMessage(_T("[PCControl_Mode] Manual Mode")); |
| | | bResult = SetProcessMode(ProcessManualMode_CPJT); |
| | | if (bResult==FALSE) m_pSP2P->ISP2P_DisplayMessage(_T("[PCControl_Mode] Manual Mode Error!")); |
| | |
| | | break; |
| | | case PCControlRecv_Autodiagnosis: |
| | | { |
| | | //#3514_LYW_CF AOI Review 자가진단 기능 개선_START |
| | | /*< LYW 20210719 : #3517 ADD Start >*/ |
| | | CSignalControl* pSignalControl = m_pSP2P->ISP2P_GetSignalControl(); |
| | | CString strDiagnosisMode; |
| | | pSignalControl->ReadData(_T("11160"), 2, strDiagnosisMode); |
| | | int nDiagnosisMode = atoi(strDiagnosisMode); |
| | | //#3514_LYW_CF AOI Review 자가진단 기능 개선_END |
| | | |
| | | m_pSP2P->ISP2P_DisplayMessage(_T("[PCControl_Signal] Diagno start => %d, DiagnosisMode => %d"), bSignalOn, nDiagnosisMode); |
| | | if (bSignalOn) { |
| | |
| | | |
| | | m_pSP2P->ISP2P_GetDiagnosisManager()->RecvSignalToSignalControl(0, nDiagnosisMode); |
| | | } |
| | | //#3514_LYW_CF AOI Review 자가진단 기능 개선_END |
| | | /*< LYW 20210719 : #3517 ADD End >*/ |
| | | else |
| | | bResult = SendSignalOffToSignalControl(PCControlSendSignalIndex_DiagnoAck, 0); |
| | | |
| | |
| | | AFM_SetAFMTracking(FALSE); |
| | | |
| | | SetWsiType(0); |
| | | WSIAllReadySignal(0); |
| | | WSIAllReadySignal(1); |
| | | |
| | | // send wsi start |
| | | if(!WSIUserAllStartSignal()) |
| | |
| | | VectorDouble vectorCollisionPosX; |
| | | vectorCollisionPosX.clear(); |
| | | |
| | | |
| | | //WSI |
| | | pMotorControl->GantrySetTwoGantrySyncModeSend(1); |
| | | |
| | | // WSI result count |
| | | for (int nModuleIdx=0; nModuleIdx<Module_GetModuleStatusCount(); nModuleIdx++) |
| | |
| | | { |
| | | int XAddr = pMotorControl->GetGantryCollisionXAddr(pModuleStatus->GetGantryIndex()); |
| | | g_pLog->DisplayMessage(_T("[Collision Position Set Fail] %d Module, Addr: %d, PosX: %.3lfmm"), nModuleIdx, XAddr, dCollisionPosX); |
| | | return 0; |
| | | /*< LYW 20220610 - #4185 Delete Start >*/ |
| | | //return 0; |
| | | /*< LYW 20220610 - #4185 Delete End >*/ |
| | | } |
| | | |
| | | } |
| | |
| | | vectorPosX.push_back(dDefectPosX); |
| | | vectorPosY.push_back(dDefectPosY); |
| | | } |
| | | } |
| | | |
| | | if (vectorPosX.empty() == TRUE) |
| | | { |
| | | //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 |
| | | } |
| | | |
| | | if (m_pSP2P->ISP2P_GetReviewProcessor()->CheckMotionComplete() == FALSE) |
| | |
| | | int XAddr = pMotorControl->GetGantryCollisionXAddr(pModuleStatus->GetGantryIndex()); |
| | | g_pLog->DisplayMessage(_T("[Review_CollisionPos] %d Module, Addr: %d, PosX: %.3lf mm"), nModuleIdx, XAddr, dCollisionPosX); |
| | | |
| | | ///pGlassResult->SetCollisionXPos(nModuleIdx, dCollisionPosX); |
| | | //pGlassResult->SetCollisionXPos(nModuleIdx, dCollisionPosX); |
| | | } |
| | | else |
| | | { |
| | | int XAddr = pMotorControl->GetGantryCollisionXAddr(pModuleStatus->GetGantryIndex()); |
| | | g_pLog->DisplayMessage(_T("[Collision Position Set Fail] %d Module, Addr: %d, PosX: %.3lfmm"), nModuleIdx, XAddr, dCollisionPosX); |
| | | return 0; |
| | | /*< LYW 20220610 - #4185 Delete Start >*/ |
| | | //return 0; |
| | | /*< LYW 20220610 - #4185 Delete End >*/ |
| | | } |
| | | // get result index |
| | | int nStartIdx = pWsiMultiShotResult->GetStartSReviewResultIndex(); |
| | |
| | | } |
| | | } |
| | | |
| | | /*< LYW 20220610 - #4185 ADD Start >*/ |
| | | void CSequenceProcessor_CPJT::CheckGantryMode() |
| | | { |
| | | CSignalControl* pSignalControl = m_pSP2P->ISP2P_GetSignalControl(); |
| | | if (pSignalControl == NULL) m_pSP2P->ISP2P_DisplayMessage(_T("[CheckGantryMode] SignalControl is NULL")); |
| | | if (pSignalControl->IsConnected() == FALSE) m_pSP2P->ISP2P_DisplayMessage(_T("[CheckGantryMode] SignalControl is Not Connect")); |
| | | |
| | | int LeftGantryUse = 0; |
| | | int RightGantryUse = 0; |
| | | |
| | | pSignalControl->ReadData(_T("10003"), 1, 1, LeftGantryUse); |
| | | pSignalControl->ReadData(_T("10003"), 2, 1, RightGantryUse); |
| | | |
| | | if (LeftGantryUse == 1 && RightGantryUse == 0) |
| | | m_pSP2P->ISP2P_Recipe_GetRsRcpReviewInfo()->GetRcpSchedulingInfo()->SetSingleGantryPath(1); |
| | | else if (LeftGantryUse == 0 && RightGantryUse == 1) |
| | | m_pSP2P->ISP2P_Recipe_GetRsRcpReviewInfo()->GetRcpSchedulingInfo()->SetSingleGantryPath(2); |
| | | else |
| | | m_pSP2P->ISP2P_Recipe_GetRsRcpReviewInfo()->GetRcpSchedulingInfo()->SetSingleGantryPath(0); |
| | | |
| | | m_pSP2P->ISP2P_DisplayMessage(_T("[CheckGantryMode] GantryMode LeftBit = %d, RightBit = %d"), LeftGantryUse, RightGantryUse); |
| | | } |
| | | /*< LYW 20220610 - #4185 ADD End >*/ |
| | | |
| | | BOOL CSequenceProcessor_CPJT::UpdateMemoryUserReflowPlanInfo(CDitGlassRawClient* pDitSharedGlassRaw) |
| | | { |
| | | CRsRcpReviewInfo* pRecipeinfo = m_pSP2P->ISP2P_Recipe_GetRsRcpReviewInfo(); |