»õ ÆÄÀÏ |
| | |
| | | #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; |
| | | } |
| | | |
| | | |
| | | } |
| | | |