From e5fa774d622d6852fe8e1f033045aed221649108 Mon Sep 17 00:00:00 2001 From: LYW <leeyeanwoo@diteam.co.kr> Date: 금, 15 10월 2021 13:24:54 +0900 Subject: [PATCH] Ongoing80 #3662 CF AOI Review 전설비 알람 발생 조치 --- ReviewHistory/ReveiwHistory/InterfaceFTP.cpp | 389 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 389 insertions(+), 0 deletions(-) diff --git a/ReviewHistory/ReveiwHistory/InterfaceFTP.cpp b/ReviewHistory/ReveiwHistory/InterfaceFTP.cpp new file mode 100644 index 0000000..f78e901 --- /dev/null +++ b/ReviewHistory/ReveiwHistory/InterfaceFTP.cpp @@ -0,0 +1,389 @@ +#include "StdAfx.h" +#include "InterfaceFTP.h" +#include "akLoggerExt.h" +#include "akCore/akFileUtil.h" + +#define LOCAL_INDEX_PATH "D:\\DIT_ResultData\\Index\\" +#define LOCAL_REV_IMAGE_PATH "D:\\ResultData\\Upload\\Image\\" +#define LOCAL_AOI_IMAGE_PATH "D:\\Image\\Defect\\" +#define LOCAL_MURA_IMAGE_PATH "D:\\DIT_ResultData\\Mura\\IMG\\" +#define LOCAL_DEEP_PATH "D:\\DIT_ResultData\\Deeplearning\\" + +CInterfaceFTP::CInterfaceFTP(void) +{ + +} + +CInterfaceFTP::~CInterfaceFTP(void) +{ +} + + +void CInterfaceFTP::SendMessageFTPUploadLinkFile( _grmGlassData* pGlassData ) +{ + if(pGlassData == NULL) return; + HWND hWnd = ::FindWindow(NULL, "FTPUploader"); + if(hWnd == NULL) return; + + char strServerFolder[256] = {}; + char strServerFile[256] = {}; + char strLocalFolder[256] = {}; + char pLocalFile[256] = {}; + GetFormatDescription(FTPCMD_LINK, strServerFolder, strServerFile, strLocalFolder, pLocalFile, pGlassData); + + CFTPCopyDataParam upParam; + strcpy(upParam.m_strServer_FolderName, strServerFolder); + strcpy(upParam.m_strServer_FileName, strServerFile); + strcpy(upParam.m_strLocal_FolderName, strLocalFolder); + strcpy(upParam.m_strLocal_FileName, pLocalFile); + strcpy(upParam.m_strServer_SignalFolderName, ""); + strcpy(upParam.m_strServer_SignalFileName, ""); + upParam.m_nCreateSignalFile = FALSE;//m_ctrlCreateSignal.GetCheck(); + upParam.m_nSendResultCode = FALSE;//m_ctrlResultAck.GetCheck(); + upParam.m_nProcessType = CFTPCopyDataParam::FTPProcessType_UpFile; + + COPYDATASTRUCT cds; + cds.dwData = CFTPCopyDataParam::FTPCopyDataCmd_RawUpload; + cds.cbData = sizeof(CFTPCopyDataParam); + cds.lpData = &upParam; + + DWORD dwReturn = 0; + if(SendMessageTimeout(hWnd, WM_COPYDATA, NULL, (LPARAM)&cds, SMTO_NORMAL, 20000, (PDWORD_PTR)(dwReturn)) == FALSE) + { + } + +} + +void CInterfaceFTP::SendMessageFTPUploadRaw( _grmGlassData* pGlassData ) +{ + if(pGlassData == NULL) return; + HWND hWnd = ::FindWindow(NULL, "FTPUploader"); + if(hWnd == NULL) return; + + char strServerFolder[256] = {}; + char strServerFile[256] = {}; + char strLocalFolder[256] = {}; + char pLocalFile[256] = {}; + GetFormatDescription(FTPCMD_RAW, strServerFolder, strServerFile, strLocalFolder, pLocalFile, pGlassData); + + CFTPCopyDataParam upParam; + strcpy(upParam.m_strServer_FolderName, strServerFolder); + strcpy(upParam.m_strServer_FileName, strServerFile); + strcpy(upParam.m_strLocal_FolderName, strLocalFolder); + strcpy(upParam.m_strLocal_FileName, pLocalFile); + strcpy(upParam.m_strServer_SignalFolderName, ""); + strcpy(upParam.m_strServer_SignalFileName, ""); + upParam.m_nCreateSignalFile = FALSE;//m_ctrlCreateSignal.GetCheck(); + upParam.m_nSendResultCode = FALSE;//m_ctrlResultAck.GetCheck(); + upParam.m_nProcessType = CFTPCopyDataParam::FTPProcessType_UpFile; + + COPYDATASTRUCT cds; + cds.dwData = CFTPCopyDataParam::FTPCopyDataCmd_RawUpload; + cds.cbData = sizeof(CFTPCopyDataParam); + cds.lpData = &upParam; + + DWORD dwReturn = 0; + if(SendMessageTimeout(hWnd, WM_COPYDATA, NULL, (LPARAM)&cds, SMTO_NORMAL, 20000, (PDWORD_PTR)(dwReturn)) == FALSE) + { + } + +} + +void CInterfaceFTP::SendMessageFTPDownloadStack( _grmGlassData* pGlassData ) +{ + if(pGlassData == NULL) return; + HWND hWnd = ::FindWindow(NULL, "FTPUploader"); + if(hWnd == NULL) return; + + char strServerFolder[256] = {}; + char strServerFile[256] = {}; + char strLocalFolder[256] = {}; + char pLocalFile[256] = {}; + GetFormatDescription(FTPCMD_STACK, strServerFolder, strServerFile, strLocalFolder, pLocalFile, pGlassData); + + CFTPCopyDataParam upParam; + strcpy(upParam.m_strServer_FolderName, strServerFolder); + strcpy(upParam.m_strServer_FileName, strServerFile); + strcpy(upParam.m_strLocal_FolderName, strLocalFolder); + strcpy(upParam.m_strLocal_FileName, pLocalFile); + strcpy(upParam.m_strServer_SignalFolderName, ""); + strcpy(upParam.m_strServer_SignalFileName, ""); + upParam.m_nCreateSignalFile = FALSE;//m_ctrlCreateSignal.GetCheck(); + upParam.m_nSendResultCode = FALSE;//m_ctrlResultAck.GetCheck(); + upParam.m_nProcessType = CFTPCopyDataParam::FTPProcessType_DownFile; + + COPYDATASTRUCT cds; + cds.dwData = CFTPCopyDataParam::FTPCopyDataCmd_RawDownload; + cds.cbData = sizeof(CFTPCopyDataParam); + cds.lpData = &upParam; + + DWORD dwReturn = 0; + if(SendMessageTimeout(hWnd, WM_COPYDATA, NULL, (LPARAM)&cds, SMTO_NORMAL, 20000, (PDWORD_PTR)(dwReturn)) == FALSE) + { + } +} + +void CInterfaceFTP::SendMessageFTPDownloadDataFile( _grmGlassData* pGlassData ) +{ + if(pGlassData == NULL) return; + HWND hWnd = ::FindWindow(NULL, "FTPDownloader"); + if(hWnd == NULL) return; + + char strServerFolder[256] = {}; + char strServerFile[256] = {}; + char strLocalFolder[256] = {}; + char pLocalFile[256] = {}; + + //GetFormatDescription(FTPCMD_DATAFILE, strServerFolder, strServerFile, strLocalFolder, pLocalFile, pGlassData); + { + CString strGlassIDOrg = pGlassData->m_strGlassID; + CString strGlassID = strGlassIDOrg.Left(12); + sprintf(strServerFolder, "%s", pGlassData->m_strCassetteSequenceNo); + sprintf(strServerFile, "%s.dat", strGlassID.GetBuffer(0)); + sprintf(strLocalFolder, "D:\\DIT_ResultData\\DownloadData"); + sprintf(pLocalFile, "%s.dat", strGlassID.GetBuffer(0)); + } + + CFTPCopyDataParam upParam; + strcpy(upParam.m_strServer_FolderName, strServerFolder); + strcpy(upParam.m_strServer_FileName, strServerFile); + strcpy(upParam.m_strLocal_FolderName, strLocalFolder); + strcpy(upParam.m_strLocal_FileName, pLocalFile); + strcpy(upParam.m_strServer_SignalFolderName, ""); + strcpy(upParam.m_strServer_SignalFileName, ""); + upParam.m_nCreateSignalFile = FALSE;//m_ctrlCreateSignal.GetCheck(); + upParam.m_nSendResultCode = FALSE;//m_ctrlResultAck.GetCheck(); + upParam.m_nProcessType = CFTPCopyDataParam::FTPProcessType_DownFile; + + COPYDATASTRUCT cds; + cds.dwData = CFTPCopyDataParam::FTPCopyDataCmd_RawDownload; + cds.cbData = sizeof(CFTPCopyDataParam); + cds.lpData = &upParam; + + DWORD dwReturn = 0; + if(SendMessageTimeout(hWnd, WM_COPYDATA, NULL, (LPARAM)&cds, SMTO_NORMAL, 20000, (PDWORD_PTR)(dwReturn)) == FALSE) + { + } +} + +void CInterfaceFTP::SendMessageFTPUploadImage( _grmGlassData* pGlassData, emFTPCommand sort) +{ + if(pGlassData == NULL) return; + HWND hWnd = ::FindWindow(NULL, "FTPUploader"); + if(hWnd == NULL) return; + + char strServerFolder[256] = {}; + char strServerFile[32];// = "*.*"; + char strLocalFolder[256] = {}; + char strLocalFile[32];// = "*.*"; + + GetFormatDescription(sort, strServerFolder, strServerFile, strLocalFolder, strLocalFile, pGlassData); + +// if(0)//test +// { +// sprintf(strServerFolder, "HDD1/DIT/TestC"); +// } + + CFTPCopyDataParam upParam; + strcpy(upParam.m_strServer_FolderName, strServerFolder); + strcpy(upParam.m_strServer_FileName, strServerFile); + strcpy(upParam.m_strLocal_FolderName, strLocalFolder); + strcpy(upParam.m_strLocal_FileName, strLocalFile); + strcpy(upParam.m_strServer_SignalFolderName, ""); + strcpy(upParam.m_strServer_SignalFileName, ""); + upParam.m_nCreateSignalFile = FALSE; + upParam.m_nSendResultCode = FALSE; + upParam.m_nProcessType = CFTPCopyDataParam::FTPProcessType_UpFile; + + COPYDATASTRUCT cds; + cds.dwData = CFTPCopyDataParam::FTPCopyDataCmd_RawUpload; //<--요건 나중에 구분 + cds.cbData = sizeof(CFTPCopyDataParam); + cds.lpData = &upParam; + + DWORD dwReturn = 0; + if(SendMessageTimeout(hWnd, WM_COPYDATA, NULL, (LPARAM)&cds, SMTO_NORMAL, 20000, (PDWORD_PTR)(dwReturn)) == FALSE) + { + } +} + + +BOOL CInterfaceFTP::SendMessageFTPUploadIndexFile( _grmGlassData* pGlassData ) +{ + if(pGlassData == NULL) + return FALSE; + + HWND hWnd = ::FindWindow(NULL, "FTPUploader"); + if(hWnd == NULL) return FALSE; + + + char strServerFolder[256] = {}; + char strServerFile[256] = {}; + char strLocalFolder[256] = {}; + char pLocalFile[256] = {}; + + GetFormatDescription(FTPCMD_INDEX, strServerFolder, strServerFile, strLocalFolder, pLocalFile, pGlassData); + + + // if(0)//test + // { + // sprintf(strServerFolder, "HDD1/DIT/TestC"); + // ServerFile = "ftptestfile.txt"; + // + // sprintf(strLocalFolder, "D:"); + // pLocalFile = "ftptestfile.txt"; + // } + + + CFTPCopyDataParam upParam; + strcpy(upParam.m_strServer_FolderName, strServerFolder); + strcpy(upParam.m_strServer_FileName, strServerFile); + strcpy(upParam.m_strLocal_FolderName, strLocalFolder); + strcpy(upParam.m_strLocal_FileName, pLocalFile); + strcpy(upParam.m_strServer_SignalFolderName, ""); + strcpy(upParam.m_strServer_SignalFileName, ""); + upParam.m_nCreateSignalFile = FALSE;//m_ctrlCreateSignal.GetCheck(); + upParam.m_nSendResultCode = FALSE;//m_ctrlResultAck.GetCheck(); + upParam.m_nProcessType = CFTPCopyDataParam::FTPProcessType_UpFile; + + COPYDATASTRUCT cds; + cds.dwData = CFTPCopyDataParam::FTPCopyDataCmd_RawUpload; + cds.cbData = sizeof(CFTPCopyDataParam); + cds.lpData = &upParam; + + DWORD dwReturn = 0; + if(SendMessageTimeout(hWnd, WM_COPYDATA, NULL, (LPARAM)&cds, SMTO_NORMAL, 20000, (PDWORD_PTR)(dwReturn)) == FALSE) + { + } + return TRUE; +} + +void CInterfaceFTP::GetFormatDescription(emFTPCommand sort, char* pServerPath, char* pServerFile, char* pLocalPath, char* pLocalFile, _grmGlassData* pGlassData) +{ + + CString strGlassIDOrg = pGlassData->m_strGlassID; + CString strGlassID = strGlassIDOrg.Left(12); + CString strGlassIDLevel5th = strGlassID.Left(5); + CString strGlassIDLevel8th = strGlassID.Left(8); + + switch(sort) + { + case FTPCMD_AOI_IMAGE: + { + CTime time = m_tmFileCreateTime; + + sprintf(pServerPath, "%s\\%04d%02d%02d\\%s\\%s\\%s\\Image", pGlassData->m_strEquipID, time.GetYear(), time.GetMonth(), time.GetDay(), + strGlassIDLevel5th.GetBuffer(0), + strGlassIDLevel8th.GetBuffer(0), + strGlassID.GetBuffer(0)); + + sprintf(pLocalPath, "%s%s", LOCAL_AOI_IMAGE_PATH, strGlassID.GetBuffer(0)); + strcpy(pServerFile, "*.*"); + strcpy(pLocalFile, "*.*"); + } + break; + case FTPCMD_REVIEW_IMAGE: + { + CTime time = m_tmFileCreateTime; + + sprintf(pServerPath, "%s\\%04d%02d%02d\\%s\\%s\\%s\\Image", pGlassData->m_strEquipID, time.GetYear(), time.GetMonth(), time.GetDay(), + strGlassIDLevel5th.GetBuffer(0), + strGlassIDLevel8th.GetBuffer(0), + strGlassID.GetBuffer(0)); + + sprintf(pLocalPath, "%s%s", LOCAL_REV_IMAGE_PATH, strGlassID.GetBuffer(0)); + strcpy(pServerFile, "*.*"); + strcpy(pLocalFile, "*.*"); + } + break; + case FTPCMD_RAW: + { + CTime time = m_tmFileCreateTime; + CString strFileName;//파일생성 시간 때문에 여기서 정확하게 파일명 다시 정정 + { + //Glass 정보 + CTime CurrTime = m_tmFileCreateTime; + CString strTime; + strTime.Format(_T("%04d%02d%02d_%02d%02d%02d"), + CurrTime.GetYear(), CurrTime.GetMonth(), CurrTime.GetDay(), CurrTime.GetHour(), CurrTime.GetMinute(), CurrTime.GetSecond()); + strFileName.Format("%s_%s_%s.csv", pGlassData->m_strOperID, pGlassData->m_strGlassID, strTime.GetBuffer(0)); + } + sprintf(pServerPath, "%s\\%04d%02d%02d\\%s\\%s\\%s\\Data", pGlassData->m_strEquipID, time.GetYear(), time.GetMonth(), time.GetDay(), + strGlassIDLevel5th.GetBuffer(0), + strGlassIDLevel8th.GetBuffer(0), + strGlassID.GetBuffer(0)); + + sprintf(pLocalPath, "%s", pGlassData->m_strPath); + + sprintf(pServerFile, "%s", strFileName.GetBuffer(0)); + sprintf(pLocalFile, "%s", strFileName.GetBuffer(0)); + } + break; + case FTPCMD_STACK: + { +// CTime time = pGlassData->m_tmGlassLoading; +// sprintf(pServerPath, "%s\\%04d%02d%02d\\%s\\%s\\%s\\Data", m_StackResult.getStackEquipID(), time.GetYear(), time.GetMonth(), time.GetDay(), +// strGlassIDLevel5th.GetBuffer(0), +// strGlassIDLevel8th.GetBuffer(0), +// strGlassID.GetBuffer(0)); +// +// //가장 최근걸 찾아야 하나? [김태현 2019/1/12] +// sprintf(pServerFile, "%s_%s_*.csv", +// m_StackResult.getStackOperID(), +// pGlassData->m_strGlassID); +// +// sprintf(pLocalPath, "%s", m_StackResult.getStackLocalPath()); +// sprintf(pLocalFile, "%s.txt", strGlassID.GetBuffer(0)); + } + break; + case FTPCMD_MURA_IMAGE: + { + CTime time = m_tmFileCreateTime; + sprintf(pServerPath, "%s\\%04d%02d%02d\\%s\\%s\\%s\\Image", pGlassData->m_strEquipID, time.GetYear(), time.GetMonth(), time.GetDay(), + strGlassIDLevel5th.GetBuffer(0), + strGlassIDLevel8th.GetBuffer(0), + strGlassID.GetBuffer(0)); + + sprintf(pLocalPath, "%s%s", LOCAL_MURA_IMAGE_PATH, strGlassID.GetBuffer(0)); + strcpy(pServerFile, "*.*"); + strcpy(pLocalFile, "*.*"); + } + break; + case FTPCMD_INDEX: + { + CTime time = m_tmFileCreateTime; + sprintf(pServerPath, "INDEX\\%s", pGlassData->m_strEquipID); + sprintf(pServerFile, "%04d%02d%02d_%s.csv", time.GetYear(), time.GetMonth(), time.GetDay(), pGlassData->m_strStepID); + + sprintf(pLocalPath, "%s", LOCAL_INDEX_PATH); + sprintf(pLocalFile, "%s", pServerFile); + } + break; + + case FTPCMD_LINK: + { + CTime time = m_tmFileCreateTime; + CString strFileName;//파일생성 시간 때문에 여기서 정확하게 파일명 다시 정정 + { + //Glass 정보 + CTime CurrTime = m_tmFileCreateTime; + CString strTime; + strTime.Format(_T("%04d%02d%02d_%02d%02d%02d"), + CurrTime.GetYear(), CurrTime.GetMonth(), CurrTime.GetDay(), CurrTime.GetHour(), CurrTime.GetMinute(), CurrTime.GetSecond()); + strFileName.Format("%s_%s_%s.csv", pGlassData->m_strOperID, pGlassData->m_strGlassID, strTime.GetBuffer(0)); + } + sprintf(pServerPath, "%s\\%s\\%s\\%s\\%s", "LINK", pGlassData->m_strEquipID, + strGlassIDLevel5th.GetBuffer(0), + strGlassIDLevel8th.GetBuffer(0), + strGlassID.GetBuffer(0)); + + sprintf(pLocalPath, "%s", pGlassData->m_strPath); + + sprintf(pServerFile, "%s", strFileName.GetBuffer(0)); + sprintf(pLocalFile, "%s", strFileName.GetBuffer(0)); + } + break; + } + + +} + -- Gitblit v1.9.3