From a9563116defc5a0026236e97374725008d23e589 Mon Sep 17 00:00:00 2001 From: LYW <leeyeanwoo@diteam.co.kr> Date: 목, 01 7월 2021 10:03:13 +0900 Subject: [PATCH] Ongoing100 #3417 CF AOI Review 전설비 Log Process개선 1. 메모리 누수현상 확인 및 조치 --- ReviewSystem/ReviewSystem/SequenceProcessor_CPJT.cpp | 47 ++++++++++++++++++++++++++++++++++------------- 1 files changed, 34 insertions(+), 13 deletions(-) diff --git a/ReviewSystem/ReviewSystem/SequenceProcessor_CPJT.cpp b/ReviewSystem/ReviewSystem/SequenceProcessor_CPJT.cpp index aea1b64..b4220f8 100644 --- a/ReviewSystem/ReviewSystem/SequenceProcessor_CPJT.cpp +++ b/ReviewSystem/ReviewSystem/SequenceProcessor_CPJT.cpp @@ -48,6 +48,7 @@ #define AOIRAWBIN_PATH "\\\\126.100.100.1\\d\\DIT_ResultData\\RawBin" #define AOIRAWBIN_TEST_PATH "d:\\DIT_ResultData\\RawBin" +#define AOIRAWBIN_NETWORK_DRIVE_PATH "Y:\\RawBin" enum CPJT_MeasureMode { CPJT_ModeAuto = 0, CPJT_ModeManual }; // [2017:4:18]-[WEZASW] : WSI Module 장착 설비의 경우 PlanType 번호 변경. @@ -963,7 +964,7 @@ // m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::Loading] Revolver Set GoHome Success!")); //} - //210330 kyh Align Image 초기화 + //#3357 KYH Align Image 초기화 ADD START CCameraControlAlign* pAlignCameraControl = m_pSP2P->ISP2P_GetAlignCameraControl(); if (pAlignCameraControl != NULL) { @@ -971,6 +972,7 @@ g_pLog->DisplayMessage(_T("[Align] Align Image Clear")); } + //#3357 KYH Align Image 초기화 ADD END // get transfer data int nResultCode = 0; @@ -1025,6 +1027,10 @@ } + + // #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; @@ -1506,6 +1512,9 @@ { 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!")); + CDitGlassRawClient* m_pDitGlassRaw = CDitGlassRawClient::GetInstance(); if (m_pSP2P->ISP2P_GetWSIControl(0)!=NULL) { @@ -1522,9 +1531,6 @@ m_pDitGlassRaw->GetGlassData()->m_nReviewNum = m_pSP2P->ISP2P_GetReviewProcessor()->GetPlanReviewCount(); //SendDVDataToSignalControl();// 안쓰쥬 - - if (SendSignalToSignalControl(PCControlSendSignalIndex_Ack, PCControlSend_ReviewEndAck_CPJT)) - m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::ReviewEnd] Send Review End Ack!")); //OverTime 발생시 제어에서 END ACK를 기다리는게 아니라 걍 Conplete를 기다린다. //음 ... 로직 오류인데일단 추가 @@ -2635,11 +2641,22 @@ { CTime tmReviewLoading = CTime::GetCurrentTime(); CString strWild; - strWild.Format("%s\\%s_*.bin", strFilePath, strFileName); + //strWild.Format("%s\\%s_*.bin", strFilePath, strFileName); CakFileUtil akFileFinder; while (nReTryTime--) { - akFileFinder.FindFile(strWild.GetBuffer(0), FALSE); + //#3359_LYW CF AOI Review REVIEW_LOADING_COMPLETE_TIMEOVER 알람 발생 원인 분석 START + if (nReTryTime%2 == 0) + { + strFilePath = AOIRAWBIN_PATH; + } + else strFilePath = AOIRAWBIN_NETWORK_DRIVE_PATH; + + strWild.Format("%s\\%s_*.bin", strFilePath, strFileName); + akFileFinder.FindFile(strWild.GetBuffer(0), FALSE); + //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 VECFINDDATA* pFindData = akFileFinder.getFindData(); int nFileNamePos = strlen(akFileFinder.getProcessPath()); std::map<LONGLONG, CString> mapSpanFileName; @@ -2684,6 +2701,7 @@ break; } } + akFileFinder.clear(); Sleep(100); } @@ -3108,7 +3126,7 @@ strReadData = pTransferData->strRerferData; break; } - m_pSP2P->ISP2P_DisplayMessage(_T("[ReadTransferData] Name: %s, Addr: %s, Size: %d, Data: %s"), pInfo->strName, strReadAddress, nReadSize, strReadData); + //m_pSP2P->ISP2P_DisplayMessage(_T("[ReadTransferData] Name: %s, Addr: %s, Size: %d, Data: %s"), pInfo->strName, strReadAddress, nReadSize, strReadData); //0517 } } @@ -4517,7 +4535,8 @@ strPath = strPath + _T("\\WSI"); if(CreateDirectory(strPath,NULL)==FALSE) { - g_pLog->DisplayMessage(_T("[MakeWSIUpLoadDirectory]Directory Create Fail %s "),strPath); + //LYW LOG추가 + g_pLog->DisplayMessage(_T("[MakeWSIUpLoadDirectory]Directory Create Fail %s, ERROR CODE = %d "),strPath, GetLastError()); } } @@ -4673,9 +4692,11 @@ //보낼 포인트가 있는지 없는지 체크 if (vectorPosX.empty() == TRUE) { - g_pLog->DisplayMessage(_T("[GantryAutoGo] No Exist Send Point "), vectorPosX.size()); + //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 } else { @@ -7711,7 +7732,8 @@ pSignalControl->WritePacketData(_T("15100"), sizeof(DVDataPack_CPJT), (short*)&DVData);*/ } -void CSequenceProcessor_CPJT::MakeDVData2() //210325 kyh FDC +//#3358 KYH FDC 데이터 전송 시점 개선 ADD START +void CSequenceProcessor_CPJT::MakeDVData2() { const CRsRcpReviewInfo* pRsRcpReviewInfo = m_pSP2P->ISP2P_Recipe_GetRsRcpReviewInfo(); @@ -7965,8 +7987,6 @@ 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); @@ -7974,6 +7994,7 @@ return; } +//#3358 KYH FDC 데이터 전송 시점 개선 ADD END DWORD CSequenceProcessor_CPJT::GetDiskUsage() { -- Gitblit v1.9.3