From 8ede40e3f7cfe1772ef7db2b1d74e905639cf343 Mon Sep 17 00:00:00 2001 From: LYW <leeyeanwoo@diteam.co.kr> Date: 금, 15 4월 2022 16:40:43 +0900 Subject: [PATCH] Ongoing90 #4086 CF AOI Review FDC SW Version 추가 요청 --- ReviewSystem/ReviewSystem/ReviewInterface.h | 17 ++++ DitGlassRawMessenger/DitGlassRawMessenger/GlassRawDemo.cpp | 1 ReviewSystem/ReviewSystem/SequenceProcessor.h | 7 + ReviewSystem/ReviewSystem/ReviewInterface.cpp | 156 ++++++++++++++++++++++++++++++++++++--- ReviewSystem/ReviewSystem/ReviewSystem.vcxproj | 2 ReviewSystem/ReviewSystem/SequenceProcessor_CPJT.cpp | 36 +++++++- DitGlassRawMessenger/DitGlassRawMessenger/GlassRawCPJT.cpp | 4 + 7 files changed, 203 insertions(+), 20 deletions(-) diff --git a/DitGlassRawMessenger/DitGlassRawMessenger/GlassRawCPJT.cpp b/DitGlassRawMessenger/DitGlassRawMessenger/GlassRawCPJT.cpp index fc064a2..93a3018 100644 --- a/DitGlassRawMessenger/DitGlassRawMessenger/GlassRawCPJT.cpp +++ b/DitGlassRawMessenger/DitGlassRawMessenger/GlassRawCPJT.cpp @@ -21,6 +21,10 @@ #define LOCAL_AOIRAWDFS_PATH "D:\\DIT_ResultData\\Raw" #define LOCAL_AOIRAWBIN_PATH "D:\\DIT_ResultData\\RawBin" +//TEST +// #define NETWORK_AOIRAWDFS_PATH "D:\\DIT_ResultData\\Raw" +// #define NETWORK_AOIRAWBIN_PATH "D:\\DIT_ResultData\\RawBin" + #define NETWORK_AOIRAWDFS_PATH "\\\\126.100.100.1\\d\\DIT_ResultData\\Raw" #define NETWORK_AOIRAWBIN_PATH "\\\\126.100.100.1\\d\\DIT_ResultData\\RawBin" diff --git a/DitGlassRawMessenger/DitGlassRawMessenger/GlassRawDemo.cpp b/DitGlassRawMessenger/DitGlassRawMessenger/GlassRawDemo.cpp index 46308eb..2171e11 100644 --- a/DitGlassRawMessenger/DitGlassRawMessenger/GlassRawDemo.cpp +++ b/DitGlassRawMessenger/DitGlassRawMessenger/GlassRawDemo.cpp @@ -16,6 +16,7 @@ #define LOCAL_AOIRAWDFS_PATH "D:\\DIT_ResultData\\Raw" #define LOCAL_AOIRAWBIN_PATH "D:\\DIT_ResultData\\RawBin" + #define NETWORK_AOIRAWDFS_PATH "\\\\126.100.100.1\\d\\DIT_ResultData\\Raw" #define NETWORK_AOIRAWBIN_PATH "\\\\126.100.100.1\\d\\DIT_ResultData\\RawBin" diff --git a/ReviewSystem/ReviewSystem/ReviewInterface.cpp b/ReviewSystem/ReviewSystem/ReviewInterface.cpp index 54bac9e..9f3371b 100644 --- a/ReviewSystem/ReviewSystem/ReviewInterface.cpp +++ b/ReviewSystem/ReviewSystem/ReviewInterface.cpp @@ -67,6 +67,8 @@ #include "akAOISharedSystem.h" #include "DlgModuleInfo.h" +#include <Psapi.h> + using namespace CHReviewResult; using namespace CHImageControls; @@ -111,6 +113,12 @@ // single variable m_strProgramVersion = _T(""); // program version + /*< LYW 20220415 - #4086 ADD Start >*/ + m_nFDCGRMSWVersion = 20220101; + m_nFDCFTPUploaderSWVersion = 20220101; + m_nFDCSyncSWVersion = 20220101; + m_nFDCReviewSWVersion = 20220101; + /*< LYW 20220415 - #4086 ADD End >*/ m_ProcessTimer.End(); // process timer // multi variable @@ -162,7 +170,6 @@ //ISP2P_CopyFolder(_REVIEW_SERVER_CONFIG_PATH_, _REVIEW_SERVER_SYSTEM_SETTING_BACKUP_PATH_CPJT); //ISP2P_CopyFolder(_REVIEW_RECIPE_PATH_, _REVIEW_RECIPE_BACKUP_PATH_CPJT); //LYW_#3344_CF AOI Review Config File 諛깆뾽 湲곕뒫 媛쒖꽑 ADD END - SetProgramVersion(); // init review data if (m_pDoc->InitReviewData()==FALSE) @@ -187,6 +194,10 @@ { m_pView->CreateDialogs(pSystemInfo->m_nLineType, pSystemInfo->m_nMachineType, pSystemInfo->m_bUseVisionAlign); } + + /*< LYW 20220415 - #4086 ADD Start >*/ + _beginthread(threadSetProgramVersion, NULL, this); + /*< LYW 20220415 - #4086 ADD End >*/ // system type log : SW Version 異붽� g_pLog->DisplayMessage(_T("Starting ReviewSystem Program! (%s)"), m_strProgramVersion); @@ -370,22 +381,22 @@ { TRACE(_T("[A2E]DeinitReviewInterface �떆�옉\n")); + m_ProcessTimer.Start(); + DisconnectReviewCamera(); + DeinitReviewCamera(); + m_ProcessTimer.End(); + if (m_pView) { m_pView->DeleteDialogs(); } + g_pLog->DisplayMessage(_T("ReviewCamera Deinit Time : %f ms"), m_ProcessTimer.GetDurationMilliSecond()); g_pLog->DisplayMessage(_T("Program exit by User!")); ClearAllObserverVector(); g_pLog->DisplayMessage(_T("Clear all Observer Vectors")); ::Sleep(400); - - m_ProcessTimer.Start(); - DisconnectReviewCamera(); - DeinitReviewCamera(); - m_ProcessTimer.End(); - g_pLog->DisplayMessage(_T("ReviewCamera Deinit Time : %f ms"), m_ProcessTimer.GetDurationMilliSecond()); m_ProcessTimer.Start(); DeinitAlignCamera(); @@ -565,14 +576,21 @@ AFM_SetAFMZoomLevel(0, 0); } - -void CReviewInterface::SetProgramVersion() +/*< LYW 20220415 - #4086 ADD Start >*/ +void CReviewInterface::threadSetProgramVersion(void* pArg) { - BOOL bReturn; + 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; + //Review S/W Version Start ::GetModuleFileName( AfxGetInstanceHandle(), currentPath, MAX_PATH); bReturn = finder.FindFile(currentPath); @@ -583,14 +601,108 @@ if(finder.IsDots()) continue; if(finder.IsDirectory()) continue; - + finder.GetLastWriteTime(timeLastWrite); - m_strProgramVersion.Format(_T("Build[ %04d.%02d.%02d %02d:%02d ]"), + pThis->m_strProgramVersion.Format(_T("Build[ %04d.%02d.%02d %02d:%02d ]"), timeLastWrite.GetYear(), timeLastWrite.GetMonth(), timeLastWrite.GetDay(), timeLastWrite.GetHour(), timeLastWrite.GetMinute()); + strTemp.Format(_T("%04d%02d%02d"), timeLastWrite.GetYear(), timeLastWrite.GetMonth(), timeLastWrite.GetDay()); + pThis->m_nFDCReviewSWVersion = atoi(strTemp); + g_pLog->DisplayMessage(_T("FDCReviewSWVersion = %d "), pThis->m_nFDCReviewSWVersion); + } + //Review S/W Version Start + + 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 + + //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 + + //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(); } +/*< LYW 20220415 - #4086 ADD End >*/ void CReviewInterface::CreateSystemDirectory() { @@ -8296,6 +8408,26 @@ m_nReview01ImageContrast = n_Value; } +BOOL CReviewInterface::ISP2P_GetReviewSWVersion() +{ + return m_nFDCReviewSWVersion; +} + +BOOL CReviewInterface::ISP2P_GetSyncSWVersion() +{ + return m_nFDCSyncSWVersion; +} + +BOOL CReviewInterface::ISP2P_GetGRMSWVersion() +{ + return m_nFDCGRMSWVersion; +} + +BOOL CReviewInterface::ISP2P_GetFTPUploaderSWVersion() +{ + return m_nFDCFTPUploaderSWVersion; +} + SDefectFilter* CReviewInterface::ISP2P_GetDefectFilter() { if (m_pDoc==NULL) return NULL; diff --git a/ReviewSystem/ReviewSystem/ReviewInterface.h b/ReviewSystem/ReviewSystem/ReviewInterface.h index 20ace29..f4b3124 100644 --- a/ReviewSystem/ReviewSystem/ReviewInterface.h +++ b/ReviewSystem/ReviewSystem/ReviewInterface.h @@ -387,6 +387,12 @@ virtual void ISP2P_SetReview00ImageContrast(int n_Value); virtual void ISP2P_SetReview01ImageContrast(int n_Value); /*< LYW 20211109 - #3662 ADD End >*/ + /*< LYW 20220415 - #4086 ADD Start >*/ + virtual BOOL ISP2P_GetReviewSWVersion(); + virtual BOOL ISP2P_GetSyncSWVersion(); + virtual BOOL ISP2P_GetGRMSWVersion(); + virtual BOOL ISP2P_GetFTPUploaderSWVersion(); + /*< LYW 20220415 - #4086 ADD End >*/ // History result virtual CGlassResult* ISP2P_GetNewHistoryResult(int& nHistoryResultCount); // new glass result @@ -666,7 +672,9 @@ // setter internal double GetFreeSpaceOfDrive() const; - void SetProgramVersion(); + /*< LYW 20220415 - #4086 ADD Start >*/ + static void threadSetProgramVersion(void* pArg); + /*< LYW 20220415 - #4086 ADD End >*/ void ApplySystemSettingValue(); void SetDefaultValue(); @@ -853,6 +861,13 @@ CString m_strProgramVersion; // program version CProcessTimer m_ProcessTimer; // process timer SThetaMotorInfo m_sThetaMotorInfo; // theta motor info + + /*< LYW 20220415 - #4086 ADD Start >*/ + long m_nFDCGRMSWVersion; + long m_nFDCFTPUploaderSWVersion; + long m_nFDCSyncSWVersion; + long m_nFDCReviewSWVersion; + /*< LYW 20220415 - #4086 ADD End >*/ // multi variable VectorModuleStatus m_vecModuleStatus; // Review Module Status Vector diff --git a/ReviewSystem/ReviewSystem/ReviewSystem.vcxproj b/ReviewSystem/ReviewSystem/ReviewSystem.vcxproj index 42aee71..f2ee3c4 100644 --- a/ReviewSystem/ReviewSystem/ReviewSystem.vcxproj +++ b/ReviewSystem/ReviewSystem/ReviewSystem.vcxproj @@ -161,7 +161,7 @@ <AdditionalIncludeDirectories>$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> </ResourceCompile> <Link> - <AdditionalDependencies>CHVirtualGlassMap_x64_vc15.lib;chartdir51.lib;CHCameraControls_x64_vc15.lib;LineChecker_x64_vc15.lib;CHImageControls_x64_vc15.lib;CHCommonClasses_x64_vc15.lib;CHCommonControls_x64_vc15.lib;CHResultFileManager_x64_vc15.lib;CHReviewRecipe_x64_vc15.lib;CHReviewSetting_x64_vc15.lib;CHReviewResult_x64_vc15.lib;CHEdgeTriangle_x64_vc15.lib;CHPathScheduler_x64_vc15.lib;CHMotorCalibrator_x64_vc15.lib;CHAutoLightControls_x64_vc15.lib;CHAlignFinder_x64_vc15.lib;CHThreadPools_x64_vc15.lib;CHReviewResultParser_x64_vc15.lib;CHReviewDefectFinder_x64_vc15.lib;CHReviewPrioritySorter_x64_vc15.lib;CHDefectPicker_x64_vc15.lib;IOCPNetwork_x64_vc15.lib;CHMotorControls_x64_vc15.lib;CHLensChangeControls_x64_vc15.lib;CHLightControls_x64_vc15.lib;CHAfmControls_x64_vc15.lib;CHSignalControls_x64_vc15.lib;CHVcrControls_x64_vc15.lib;CHWsiControls_x64_vc15.lib;CHTotalPitchMeasure_x64_vc15.lib;M_AutoDiagnosisManager_x64_vc17.lib;%(AdditionalDependencies)</AdditionalDependencies> + <AdditionalDependencies>CHVirtualGlassMap_x64_vc15.lib;chartdir51.lib;CHCameraControls_x64_vc15.lib;LineChecker_x64_vc15.lib;CHImageControls_x64_vc15.lib;CHCommonClasses_x64_vc15.lib;CHCommonControls_x64_vc15.lib;CHResultFileManager_x64_vc15.lib;CHReviewRecipe_x64_vc15.lib;CHReviewSetting_x64_vc15.lib;CHReviewResult_x64_vc15.lib;CHEdgeTriangle_x64_vc15.lib;CHPathScheduler_x64_vc15.lib;CHMotorCalibrator_x64_vc15.lib;CHAutoLightControls_x64_vc15.lib;CHAlignFinder_x64_vc15.lib;CHThreadPools_x64_vc15.lib;CHReviewResultParser_x64_vc15.lib;CHReviewDefectFinder_x64_vc15.lib;CHReviewPrioritySorter_x64_vc15.lib;CHDefectPicker_x64_vc15.lib;IOCPNetwork_x64_vc15.lib;CHMotorControls_x64_vc15.lib;CHLensChangeControls_x64_vc15.lib;CHLightControls_x64_vc15.lib;CHAfmControls_x64_vc15.lib;CHSignalControls_x64_vc15.lib;CHVcrControls_x64_vc15.lib;CHWsiControls_x64_vc15.lib;CHTotalPitchMeasure_x64_vc15.lib;M_AutoDiagnosisManager_x64_vc17.lib;psapi.lib;%(AdditionalDependencies)</AdditionalDependencies> <AdditionalLibraryDirectories>../lib;../../Internal_Library/lib;../../External_Library/lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories> <GenerateDebugInformation>true</GenerateDebugInformation> <SubSystem>Windows</SubSystem> diff --git a/ReviewSystem/ReviewSystem/SequenceProcessor.h b/ReviewSystem/ReviewSystem/SequenceProcessor.h index c045944..dbb062b 100644 --- a/ReviewSystem/ReviewSystem/SequenceProcessor.h +++ b/ReviewSystem/ReviewSystem/SequenceProcessor.h @@ -438,6 +438,13 @@ virtual void ISP2P_SetReview01ImageContrast(int n_Value) = 0; /*< LYW 20211109 - #3662 ADD End >*/ + /*< LYW 20220415 - #4086 ADD Start >*/ + virtual BOOL ISP2P_GetReviewSWVersion() = 0; + virtual BOOL ISP2P_GetSyncSWVersion() = 0; + virtual BOOL ISP2P_GetGRMSWVersion() = 0; + virtual BOOL ISP2P_GetFTPUploaderSWVersion() = 0; + /*< LYW 20220415 - #4086 ADD End >*/ + virtual CGlassResult* ISP2P_GetNewHistoryResult(int& nHistoryResultCount) = 0; // new glass result virtual CGlassResult* ISP2P_GetHistoryResult(int nIndex) = 0; // get glass result diff --git a/ReviewSystem/ReviewSystem/SequenceProcessor_CPJT.cpp b/ReviewSystem/ReviewSystem/SequenceProcessor_CPJT.cpp index dccb4d4..0a45de0 100644 --- a/ReviewSystem/ReviewSystem/SequenceProcessor_CPJT.cpp +++ b/ReviewSystem/ReviewSystem/SequenceProcessor_CPJT.cpp @@ -7772,6 +7772,9 @@ 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; //CCHImageData pImageData2; @@ -8047,6 +8050,12 @@ 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; + /*< LYW 20220415 - #4086 ADD End >*/ //foucs /*< LYW 20211109 - #3662 MOD Start >*/ @@ -8054,6 +8063,13 @@ { nRev_Cam1_Image_Contrast = m_pSP2P->ISP2P_GetReview00ImageContrast() * 1000; nRev_Cam2_Image_Contrast = m_pSP2P->ISP2P_GetReview01ImageContrast() * 1000; + + /*< 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(); + /*< LYW 20220415 - #4086 ADD End >*/ } /*< LYW 20211109 - #3662 MOD End >*/ /*< Origin Code >*/ @@ -8197,13 +8213,21 @@ 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("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 End >*/ + +// 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; -- Gitblit v1.9.3