#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; } }