From 3ce48f6dbeb537e252edb0d62c88a28796e36674 Mon Sep 17 00:00:00 2001 From: SWK <sungwk82@diteam.co.kr> Date: 월, 26 12월 2022 15:04:42 +0900 Subject: [PATCH] ongoing60 #4403 CF AOI Review TACT 지연 개선 1. 신호 출력 방식 재개선 - 유지 시간이 없는 신호는 바로 출력 진행하도록 변경 2. 불필요 Delay 제거 및 시퀀스 변경 - 얼라인 측정 종료 처리 간 제어 신호 먼저 출력 후 카메라 Stop으로 변경 - 물류 정보 읽기 처리 후 1000ms Delay 삭제 - 얼라인 측정 시작(카메라 Live Start) 후 Delay 300ms -> 100ms(이미지 들어오는 시간 확보 필요) - ReadRawFile 처리 시작 전 500ms Delay 삭제 - Path Scheduling 완료 후 Review Ready 신호 출력 전 1000ms Delay 삭제 3. 버그 수정 - 이미지 저장 경로 생성 간 예외 처리 부분 버그 수정 4. 로그 시간 출력 불합리 개선 - 로그 시간이 파일 출력 시점으로 작성되어 로그 스래드 지연 시 시간이 맞지 않는 불합리 있음 - 로그 시간은 로그 발생 시점에 시간 저장, 해당 시간 이용하여 파일에 기록하도록 변경 --- ReviewSystem/ReviewSystem/ReviewInterface.cpp | 255 ++++++++++++++++++++++++++++++++------------------ 1 files changed, 164 insertions(+), 91 deletions(-) diff --git a/ReviewSystem/ReviewSystem/ReviewInterface.cpp b/ReviewSystem/ReviewSystem/ReviewInterface.cpp index 4bb293d..944250b 100644 --- a/ReviewSystem/ReviewSystem/ReviewInterface.cpp +++ b/ReviewSystem/ReviewSystem/ReviewInterface.cpp @@ -585,110 +585,176 @@ void CReviewInterface::threadSet3rdPartyProgramVersion(void* pArg) { CReviewInterface* pThis = (CReviewInterface*)pArg; - //LYW0412 - BOOL bReturn, bRetFTPUploader = FALSE, bRetGRM = FALSE, bRetSync = FALSE; - CFileFind finder; - CTime timeLastWrite; - TCHAR currentPath[MAX_PATH]; - DWORD dwPid; - HWND hWnd; - HANDLE hHandle; - CString strTemp; + /*< SWK 20221222 - #4403 MOD Start >*/ +// //LYW0412 +// BOOL bReturn, bRetFTPUploader = FALSE, bRetGRM = FALSE, bRetSync = FALSE; +// CFileFind finder; +// CTime timeLastWrite; +// TCHAR currentPath[MAX_PATH]; +// DWORD dwPid; +// HWND hWnd; +// HANDLE hHandle; +// CString strTemp; +// +// while ((bRetFTPUploader&bRetGRM&bRetSync) != TRUE) +// { +// bReturn = FALSE; +// +// //FTPUploader S/W Version Start +// if (bRetFTPUploader == FALSE) +// { +// dwPid = 0; +// hWnd = ::FindWindow(NULL, _T("FTPUploader")); +// GetWindowThreadProcessId(hWnd, &dwPid); +// hHandle = OpenProcess(MAXIMUM_ALLOWED, FALSE, dwPid); +// ZeroMemory(currentPath, MAX_PATH); +// GetModuleFileNameEx(hHandle, NULL, currentPath, MAX_PATH); +// +// bReturn = finder.FindFile(currentPath); +// } +// +// while (bReturn) +// { +// bReturn = finder.FindNextFile(); +// +// if (finder.IsDots()) continue; +// if (finder.IsDirectory()) continue; +// +// finder.GetLastWriteTime(timeLastWrite); +// strTemp.Format(_T("%04d%02d%02d"), timeLastWrite.GetYear(), timeLastWrite.GetMonth(), timeLastWrite.GetDay()); +// pThis->m_nFDCFTPUploaderSWVersion = atoi(strTemp); +// g_pLog->DisplayMessage(_T("FDCFTPUploaderSWVersion = %d "), pThis->m_nFDCFTPUploaderSWVersion); +// bRetFTPUploader = TRUE; +// } +// //FTPUploader S/W Version End +// +// bReturn = FALSE; +// +// //Dit Glass Raw Messenger S/W Version Start +// if (bRetGRM == FALSE) +// { +// dwPid = 0; +// hWnd = ::FindWindow(NULL, _T("Dit Glass Raw Messenger")); +// GetWindowThreadProcessId(hWnd, &dwPid); +// hHandle = OpenProcess(MAXIMUM_ALLOWED, FALSE, dwPid); +// ZeroMemory(currentPath, MAX_PATH); +// GetModuleFileNameEx(hHandle, NULL, currentPath, MAX_PATH); +// +// bReturn = finder.FindFile(currentPath); +// } +// +// while (bReturn) +// { +// bReturn = finder.FindNextFile(); +// +// if (finder.IsDots()) continue; +// if (finder.IsDirectory()) continue; +// +// finder.GetLastWriteTime(timeLastWrite); +// strTemp.Format(_T("%04d%02d%02d"), timeLastWrite.GetYear(), timeLastWrite.GetMonth(), timeLastWrite.GetDay()); +// pThis->m_nFDCGRMSWVersion = atoi(strTemp); +// g_pLog->DisplayMessage(_T("FDCGRMSWVersion = %d "), pThis->m_nFDCGRMSWVersion); +// bRetGRM = TRUE; +// } +// //Dit Glass Raw Messenger S/W Version End +// +// bReturn = FALSE; +// +// //Dit Shared Memory Sync Client S/W Version Start +// if (bRetSync == FALSE) +// { +// dwPid = 0; +// hWnd = ::FindWindow(NULL, _T("Dit Shared Memory Sync Client")); +// GetWindowThreadProcessId(hWnd, &dwPid); +// hHandle = OpenProcess(MAXIMUM_ALLOWED, FALSE, dwPid); +// ZeroMemory(currentPath, MAX_PATH); +// GetModuleFileNameEx(hHandle, NULL, currentPath, MAX_PATH); +// +// bReturn = finder.FindFile(currentPath); +// } +// +// while (bReturn) +// { +// bReturn = finder.FindNextFile(); +// +// if (finder.IsDots()) continue; +// if (finder.IsDirectory()) continue; +// +// finder.GetLastWriteTime(timeLastWrite); +// strTemp.Format(_T("%04d%02d%02d"), timeLastWrite.GetYear(), timeLastWrite.GetMonth(), timeLastWrite.GetDay()); +// pThis->m_nFDCSyncSWVersion = atoi(strTemp); +// g_pLog->DisplayMessage(_T("FDCSyncSWVersion = %d "), pThis->m_nFDCSyncSWVersion); +// bRetSync = TRUE; +// } +// //Dit Shared Memory Sync Client S/W Version End +// } +// +// finder.Close(); - while ((bRetFTPUploader&bRetGRM&bRetSync) != TRUE) + auto GetModuleFileLastTime = [](LPCTSTR strWindowTitle)->long { + long nLastTime = 0; + DWORD dwPid = 0; + + HWND hWnd = ::FindWindow(NULL, strWindowTitle); + if (hWnd == INVALID_HANDLE_VALUE) + return nLastTime; + + GetWindowThreadProcessId(hWnd, &dwPid); + HANDLE hHandle = OpenProcess(MAXIMUM_ALLOWED, FALSE, dwPid); + TCHAR currentPath[MAX_PATH]; + ZeroMemory(currentPath, MAX_PATH); + GetModuleFileNameEx(hHandle, NULL, currentPath, MAX_PATH); + + CFileFind finder; + if (finder.FindFile(currentPath)) + { + finder.FindNextFile(); + + if (finder.IsDirectory() || finder.IsDots()) + return nLastTime; + + CTime timeLastWrite; + finder.GetLastWriteTime(timeLastWrite); + nLastTime = atoi(timeLastWrite.Format(_T("%Y%m%d"))); + } + return nLastTime; + }; + + BOOL bRetFTPUploader = FALSE, bRetGRM = FALSE, bRetSync = FALSE; + while ((bRetFTPUploader&bRetGRM&bRetSync) != TRUE) { - bReturn = FALSE; - - //FTPUploader S/W Version Start + //FTPUploader S/W Version if (bRetFTPUploader == FALSE) { - dwPid = 0; - hWnd = ::FindWindow(NULL, _T("FTPUploader")); - GetWindowThreadProcessId(hWnd, &dwPid); - hHandle = OpenProcess(MAXIMUM_ALLOWED, FALSE, dwPid); - ZeroMemory(currentPath, MAX_PATH); - GetModuleFileNameEx(hHandle, NULL, currentPath, MAX_PATH); - - bReturn = finder.FindFile(currentPath); + if (pThis->m_nFDCFTPUploaderSWVersion = GetModuleFileLastTime(_T("FTPUploader"))) + { + g_pLog->DisplayMessage(_T("FDCFTPUploaderSWVersion = %d "), pThis->m_nFDCFTPUploaderSWVersion); + bRetFTPUploader = TRUE; + } } - - while (bReturn) - { - bReturn = finder.FindNextFile(); - - if (finder.IsDots()) continue; - if (finder.IsDirectory()) continue; - - finder.GetLastWriteTime(timeLastWrite); - strTemp.Format(_T("%04d%02d%02d"), timeLastWrite.GetYear(), timeLastWrite.GetMonth(), timeLastWrite.GetDay()); - pThis->m_nFDCFTPUploaderSWVersion = atoi(strTemp); - g_pLog->DisplayMessage(_T("FDCFTPUploaderSWVersion = %d "), pThis->m_nFDCFTPUploaderSWVersion); - bRetFTPUploader = TRUE; - } - //FTPUploader S/W Version End - - bReturn = FALSE; - - //Dit Glass Raw Messenger S/W Version Start + Sleep(1); + //Dit Glass Raw Messenger S/W Version if (bRetGRM == FALSE) { - dwPid = 0; - hWnd = ::FindWindow(NULL, _T("Dit Glass Raw Messenger")); - GetWindowThreadProcessId(hWnd, &dwPid); - hHandle = OpenProcess(MAXIMUM_ALLOWED, FALSE, dwPid); - ZeroMemory(currentPath, MAX_PATH); - GetModuleFileNameEx(hHandle, NULL, currentPath, MAX_PATH); - - bReturn = finder.FindFile(currentPath); + if (pThis->m_nFDCGRMSWVersion = GetModuleFileLastTime(_T("Dit Glass Raw Messenger"))) + { + g_pLog->DisplayMessage(_T("FDCGRMSWVersion = %d "), pThis->m_nFDCGRMSWVersion); + bRetGRM = TRUE; + } } - - while (bReturn) - { - bReturn = finder.FindNextFile(); - - if (finder.IsDots()) continue; - if (finder.IsDirectory()) continue; - - finder.GetLastWriteTime(timeLastWrite); - strTemp.Format(_T("%04d%02d%02d"), timeLastWrite.GetYear(), timeLastWrite.GetMonth(), timeLastWrite.GetDay()); - pThis->m_nFDCGRMSWVersion = atoi(strTemp); - g_pLog->DisplayMessage(_T("FDCGRMSWVersion = %d "), pThis->m_nFDCGRMSWVersion); - bRetGRM = TRUE; - } - //Dit Glass Raw Messenger S/W Version End - - bReturn = FALSE; - + Sleep(1); //Dit Shared Memory Sync Client S/W Version Start if (bRetSync == FALSE) { - dwPid = 0; - hWnd = ::FindWindow(NULL, _T("Dit Shared Memory Sync Client")); - GetWindowThreadProcessId(hWnd, &dwPid); - hHandle = OpenProcess(MAXIMUM_ALLOWED, FALSE, dwPid); - ZeroMemory(currentPath, MAX_PATH); - GetModuleFileNameEx(hHandle, NULL, currentPath, MAX_PATH); - - bReturn = finder.FindFile(currentPath); + if (pThis->m_nFDCSyncSWVersion = GetModuleFileLastTime(_T("Dit Shared Memory Sync Client"))) + { + g_pLog->DisplayMessage(_T("FDCSyncSWVersion = %d "), pThis->m_nFDCSyncSWVersion); + bRetSync = TRUE; + } } - - while (bReturn) - { - bReturn = finder.FindNextFile(); - - if (finder.IsDots()) continue; - if (finder.IsDirectory()) continue; - - finder.GetLastWriteTime(timeLastWrite); - strTemp.Format(_T("%04d%02d%02d"), timeLastWrite.GetYear(), timeLastWrite.GetMonth(), timeLastWrite.GetDay()); - pThis->m_nFDCSyncSWVersion = atoi(strTemp); - g_pLog->DisplayMessage(_T("FDCSyncSWVersion = %d "), pThis->m_nFDCSyncSWVersion); - bRetSync = TRUE; - } - //Dit Shared Memory Sync Client S/W Version End + Sleep(1); } - - finder.Close(); + /*< SWK 20221222 - #4403 MOD End >*/ } void CReviewInterface::SetReviewProgramVersion() @@ -9369,6 +9435,13 @@ g_pLog->DisplayMessage(_T("[WSI_%d] Send Motion End to WSI SUCCESS! [%02d][%02d]"), nWsiIndex, nModuleIndex, nWsiIndex); } +void CReviewInterface::IMC2P_SendMotorAliveErrorAlram() +{ + IRP2P_GetSequenceProcessor()->SendSignalToSignalControl(PCControlSendSignalIndex_State, PCControlSend_Review_Motor_Communication_Fail, 1000); + + return; +} + void CReviewInterface::IWC2P_SetScanEnd( int nIndex, int nPointIndex, int nPositionX, int nPositionY ) { int nModuleIndex=-1, nWsiIndex=-1; -- Gitblit v1.9.3