Ongoing90 #4220 CF AOI Review 알람 추가
1. 모터와 15초이상 통신 불가시 알람 발생
2. 현재사용중인 Signal File이 업로드 실패하는 경우도 더러 발생하여 Raw, MicroImage, ReviewImage, Signal 파일 중 2개이상이 실패시 알람 발생
3. 물류데이터내 생산코드가 RW가 아닌글래스 중 리뷰스케쥴링 후 1개이상 좌표를 찍어야 하지만 0개 찍은경우 설정한 n번째 글래스에서 발생
| | |
| | | |
| | | //if(1) ReadMuraFile(pData); 211012 KJG - QD Macro 개별 업로드 하므로 Macro 데이터 적제 제거 요청 |
| | | |
| | | if (1) |
| | | if(WriteAOIFile(pData) == FALSE) |
| | | return FALSE; |
| | | |
| | | //210126 CJH - Review End에서만 RTMS 결과파일 생성하도록 변경 |
| | | if (m_GlassRawRTMS.WriteAOIFile(pData) == FALSE) |
| | | return FALSE; |
| | | |
| | | if(1) |
| | | { |
| | | _grmGlassData* pGlassData = pData->GetGlassData(); |
| | | |
| | |
| | | SendMessageFTPUploadImage(pGlassData, FTPCMD_MURA_IMAGE);//0405nwh |
| | | |
| | | } |
| | | |
| | | if(WriteAOIFile(pData) == FALSE) |
| | | return FALSE; |
| | | |
| | | //210126 CJH - Review End에서만 RTMS 결과파일 생성하도록 변경 |
| | | if (m_GlassRawRTMS.WriteAOIFile(pData) == FALSE) |
| | | return FALSE; |
| | | |
| | | |
| | | |
| | | |
| | | |
| | |
| | | } |
| | | // 16 2 STACK_COUNT // Count of Defect detected step |
| | | SPRINTRAW(2, "%2d", pDefectData->m_nStackStepCount); |
| | | // 17 60 STACK_STEP // Flow(Step) of defect detection |
| | | // 17 60 -> 400 STACK_STEP // Flow(Step) of defect detection |
| | | if (strlen(pDefectData->m_strStackFirst)) |
| | | { |
| | | SPRINTRAW(60, "%s", pDefectData->m_strStackFirst); |
| | | /* < KMH 20220712 : #4230 MOD Start > */ |
| | | //SPRINTRAW(60, "%s", pDefectData->m_strStackFirst); |
| | | SPRINTRAW(400, "%s", pDefectData->m_strStackFirst); |
| | | /* < KMH 20220712 : #4230 MOD End > */ |
| | | } |
| | | else |
| | | { |
| | |
| | | StackDefect.m_StackInfo = Stack_Unknown; |
| | | |
| | | pReadPoint = getParsingData(pReadPoint, 2, &StackDefect.m_nStackStepCount); |
| | | pReadPoint = getParsingData(pReadPoint, 60, &strtemp); // Stack Step m_strStackFirst |
| | | strncpy(StackDefect.m_strStackFirst, strtemp.GetBuffer(0), 60); |
| | | /* < KMH 20220712 : #4230 MOD Start > */ |
| | | //pReadPoint = getParsingData(pReadPoint, 60, &strtemp); // Stack Step m_strStackFirst |
| | | //strncpy(StackDefect.m_strStackFirst, strtemp.GetBuffer(0), 60); |
| | | pReadPoint = getParsingData(pReadPoint, 400, &strtemp); // Stack Step m_strStackFirst |
| | | strncpy(StackDefect.m_strStackFirst, strtemp.GetBuffer(0), 400); |
| | | /* < KMH 20220712 : #4230 MOD End > */ |
| | | pReadPoint = getParsingData(pReadPoint, 16, &strtemp); // ReviewImageName m_strRevImageName |
| | | pReadPoint = getParsingData(pReadPoint, 12, &temp); // 미사용 |
| | | pReadPoint = getParsingData(pReadPoint, 12, &temp); // 미사용 |
| | |
| | | int m_nPixelConv; // pixel 단위 좌표 |
| | | int m_nPixelScan; // pixel 단위 좌표 |
| | | |
| | | short m_nPixelSize; // 결함크기 ---------------------------------PS |
| | | /* < KMH 20220707 : #4230 MOD Start > */ |
| | | // 범위 벗어나서 음수로 표기되면 D_Col Fail |
| | | //short m_nPixelSize; // 결함크기 ---------------------------------PS |
| | | int m_nPixelSize; // 결함크기 ---------------------------------PS |
| | | /* < KMH 20220707 : #4230 MOD End > */ |
| | | short/*SERVER_DefectType*/ m_DefectType; // 결함 타입 ---------------------------------DT |
| | | short/*SERVER_DefectSubType*/ m_DefectSubType; // 결함의 판정상태. |
| | | short/*SERVER_DefectBDType*/ m_DefectBDType; // 결함 타입 - Bright, Dark, Both |
| | |
| | | short m_nStackStepCount; // Stack 수 |
| | | short m_nStackColorIdx; // Color를 선택하는 인덱스. |
| | | //CString m_strStackStep[CFDEFECT_STACKCOUNT]; // Stack Step. |
| | | char m_strStackFirst[60]; // Stack Step. //201221 CJH - 최대 사이즈 60bytes |
| | | /* < KMH 20220712 : #4230 MOD Start > */ |
| | | // char m_strStackFirst[60]; // Stack Step. //201221 CJH - 최대 사이즈 60bytes |
| | | char m_strStackFirst[400]; // Stack Step. // 400 bytes 확장요청 : SDC 채승석P |
| | | /* < KMH 20220712 : #4230 MOD End > */ |
| | | char m_strUnitID[16]; // 유닛아이디 |
| | | |
| | | int m_ClassificationType; // enum ClassificationType { ClassType_None= 0, ClassType_PI_Over= 1, ClassType_PI_Under= 2, ClassType_TFE_Circle= 3, ClassType_Bubble, ClassType_Scratch, ClassType_Particle}; Classification Type, PI나 TFE등 추가 분류 알고리즘 적용 결과. |
| | |
| | | m_nConnectionTimeout2 = 5000; |
| | | m_strDefaultFolderPath2 = _T("/Test/"); |
| | | |
| | | //201218 CJH - Download용 IP 추가 |
| | | //201218 CJH - Download�� IP �߰� |
| | | m_strIP3 = _T("127.0.0.1"); |
| | | m_strID3 = _T("ID_Invalid"); |
| | | m_strPassword3 = _T("PW_Invalid"); |
| | |
| | | DisplayLogMessage(strMessage); |
| | | } |
| | | |
| | | // ACK를 해야하나? |
| | | // ACK�� �ؾ��ϳ�? |
| | | Process_UploadAck(nUploadResult, uploadParam); |
| | | |
| | | return TRUE; |
| | |
| | | DisplayLogMessage(strMessage); |
| | | } |
| | | |
| | | // ACK를 해야하나? |
| | | // ACK�� �ؾ��ϳ�? |
| | | Process_DownloadAck(TRUE, downloadParam); |
| | | |
| | | return TRUE; |
| | |
| | | m_nConnectionTimeout = nTimeout; |
| | | } |
| | | |
| | | void CFTPThreadPool::SetConnectionInfo( CString strIP, CString strUserID, CString strPassword, int nPort, int nTimeout, CString strHomePath, CString strIP2, CString strUserID2, CString strPassword2, int nPort2, int nTimeout2, CString strHomePath2, CString strIP3, CString strUserID3, CString strPassword3, int nPort3, int nTimeout3, CString strHomePath3, BOOL bPassive ,BOOL bWSIChk) |
| | | void CFTPThreadPool::SetConnectionInfo( CString strIP, CString strUserID, CString strPassword, int nPort, int nTimeout, CString strHomePath, CString strIP2, CString strUserID2, CString strPassword2, int nPort2, int nTimeout2, CString strHomePath2, CString strIP3, CString strUserID3, CString strPassword3, int nPort3, int nTimeout3, CString strHomePath3, BOOL bPassive ,BOOL bWSIChk, BOOL bBDIStackDown) |
| | | { |
| | | m_strIP = strIP; |
| | | m_strID = strUserID; |
| | |
| | | m_nConnectionTimeout2 = nTimeout2; |
| | | m_strDefaultFolderPath2 = strHomePath2; |
| | | |
| | | //201218 CJH - Download용 IP 추가 |
| | | //201218 CJH - Download�� IP �߰� |
| | | m_strIP3 = strIP3; |
| | | m_strID3 = strUserID3; |
| | | m_strPassword3 = strPassword3; |
| | |
| | | m_strDefaultFolderPath3 = strHomePath3; |
| | | |
| | | m_bWSIChk = bWSIChk; |
| | | m_bBDIStackDown = bBDIStackDown; |
| | | |
| | | if(m_strDefaultFolderPath.Right(1) != _T("\\")) |
| | | { |
| | |
| | | { |
| | | Sleep(10); |
| | | |
| | | // Main 서버 접속 |
| | | // Main ���� ���� |
| | | if(m_bConnect = Connect()) |
| | | { |
| | | //NotifyMessageToParent(eFTPConnection,m_strIP,m_strDefaultFolderPath); |
| | | // 기본 폴더 이동 |
| | | // �⺻ ���� �̵� |
| | | if(m_bSharedFolder == FALSE && ChangeDirectory(m_strDefaultFolderPath) == FALSE) |
| | | { |
| | | CString strError = _T("CFTPThread::OnStartUploadProcess ChangeDirectory Process Error"); |
| | |
| | | } |
| | | |
| | | m_pSession->SetOption(INTERNET_OPTION_CONNECT_TIMEOUT,m_nConnectionTimeout); |
| | | m_pSession->SetOption(INTERNET_OPTION_SEND_TIMEOUT,m_nConnectionTimeout); // GetLastError 시에 ERROR_INTERNET_TIMEOUT 에러를 리턴한다. |
| | | m_pSession->SetOption(INTERNET_OPTION_SEND_TIMEOUT,m_nConnectionTimeout); // GetLastError �ÿ� ERROR_INTERNET_TIMEOUT ������ �����Ѵ�. |
| | | |
| | | try |
| | | { |
| | |
| | | return bReturn; |
| | | } |
| | | |
| | | // 마지막 폴더로 이동이 실패 한다면 For문 돌면서 폴더를 생성한다. |
| | | // ������ ������ �̵��� ���� �Ѵٸ� For�� ���鼭 ������ �����Ѵ�. |
| | | CString strFinalPath = strPath; |
| | | int nStartIdx = 1; |
| | | while(TRUE) |
| | |
| | | CString strMessage = _T(""); |
| | | BOOL bUploadResult = FALSE; |
| | | |
| | | // 최종 서버 경로 만들기 |
| | | // ���� ���� ��� ����� |
| | | CString strServer_FinalPath = m_strDefaultFolderPath + Param.m_strServer_SignalFolderName; |
| | | strServer_FinalPath += _T("/"); |
| | | |
| | | // 서버 경로 변경 없으면 만들어서 변경 |
| | | // ���� ��� ���� ������ ���� ���� |
| | | if(m_bSharedFolder) |
| | | { |
| | | CString strCreatePath; |
| | |
| | | ChangeDirectory(strServer_FinalPath, TRUE); |
| | | } |
| | | |
| | | // 로컬 시그널 파일 경로 |
| | | // ���� �ñ׳� ���� ��� |
| | | CString strLocalSignalPath = LOCAL_SIGNAL_FILE_PATH; |
| | | strLocalSignalPath += _T("\\"); |
| | | strLocalSignalPath += Param.m_strServer_SignalFileName; |
| | | |
| | | // 로컬에 시그널 파일 만들기 |
| | | // ���ÿ� �ñ׳� ���� ����� |
| | | CFile SignalFile; |
| | | if (SignalFile.Open((LPCTSTR)strLocalSignalPath, CFile::modeCreate)) |
| | | { |
| | | SignalFile.Close(); |
| | | |
| | | // 리모트 시크널 파일 경로 |
| | | // ����Ʈ ��ũ�� ���� ��� |
| | | strServer_FinalPath = strServer_FinalPath + Param.m_strServer_SignalFileName; |
| | | |
| | | // 시그널 파일 업로드 |
| | | // �ñ׳� ���� ���ε� |
| | | if(m_bSharedFolder) |
| | | { |
| | | bUploadResult = CopyFile(strLocalSignalPath, strServer_FinalPath, FALSE); |
| | |
| | | bUploadResult = m_pConnection->PutFile(strLocalSignalPath, strServer_FinalPath); |
| | | } |
| | | |
| | | // 로컬 시그널 파일 삭제 |
| | | // ���� �ñ׳� ���� ���� |
| | | DeleteFile(strLocalSignalPath); |
| | | |
| | | // 결과 로그 출력 |
| | | // ��� �α� ��� |
| | | DisplayResultMessage(bUploadResult, strServer_FinalPath, strLocalSignalPath); |
| | | |
| | | } |
| | |
| | | CString strMessage = _T(""); |
| | | BOOL bUploadResult = TRUE; |
| | | CString strConfigBackUpIp = _T("12.96.66.96"); // RTMS PC IP [ 21-03-03 KJG ] // RTMS PC ID/PW : administrator / dit1234!@ |
| | | CString strConfigBackUpPath =_T("DIT_AutoConfigBackUp\\"); // RTMS PC로 Config 파일 업로드 경로 [ 21-03-03 KJG ] |
| | | CString strConfigBackUpPath =_T("DIT_AutoConfigBackUp\\"); // RTMS PC�� Config ���� ���ε� ��� [ 21-03-03 KJG ] |
| | | // [C-PRJ] Image Upload Define - KHT (2020/11/19) |
| | | // 최종 서버 경로 만들기 |
| | | // ���� ���� ��� ����� |
| | | CString strServer_FinalPath, strServer_WSIFinalPath = _T(""); |
| | | |
| | | if(Param.m_nDataType == FTPDataType_Image) |
| | |
| | | { |
| | | strServer_FinalPath = m_strDefaultFolderPath + Param.m_strServer_FolderName; |
| | | } |
| | | if(Param.m_nDataType == FTPDataType_AutoBackUp) // RTMS PC로 Config 파일 업로드 경로 [ 21-03-03 KJG ] |
| | | if(Param.m_nDataType == FTPDataType_AutoBackUp) // RTMS PC�� Config ���� ���ε� ��� [ 21-03-03 KJG ] |
| | | { |
| | | strServer_FinalPath.Format("%s%s", strConfigBackUpPath, Param.m_strServer_FolderName); |
| | | } |
| | | |
| | | //strServer_FinalPath += _T("\\"); |
| | | |
| | | // 서버 경로 변경 없으면 만들어서 변경 |
| | | // ���� ��� ���� ������ ���� ���� |
| | | if(m_bSharedFolder) |
| | | { |
| | | CString strCreatePath; |
| | |
| | | { |
| | | strCreatePath = "\\\\"+m_strIP+ "\\" + strServer_FinalPath; |
| | | } |
| | | if(Param.m_nDataType == FTPDataType_AutoBackUp) // RTMS PC로 Config 파일 업로드 경로 [ 21-03-03 KJG ] |
| | | if(Param.m_nDataType == FTPDataType_AutoBackUp) // RTMS PC�� Config ���� ���ε� ��� [ 21-03-03 KJG ] |
| | | { |
| | | strCreatePath.Format("\\\\%s\\%s", strConfigBackUpIp, strServer_FinalPath); |
| | | } |
| | |
| | | } |
| | | |
| | | |
| | | //Raw 파일 경로 추가 |
| | | //Raw ���� ��� �߰� |
| | | CString strServerSubRawFileFullPathName=NULL; |
| | | if(Param.m_nDataType == FTPDataType_Raw) |
| | | { |
| | |
| | | |
| | | |
| | | |
| | | // 로컬 풀 경로명 만들기 |
| | | // ���� Ǯ ��θ� ����� |
| | | CString strLocal_FullPathName = Param.m_strLocal_FolderName; |
| | | strLocal_FullPathName += _T("\\"); |
| | | strLocal_FullPathName += Param.m_strLocal_FileName; |
| | | |
| | | // 로컬 경로에서 올릴 파일 찾기 |
| | | // ���� ��ο��� �ø� ���� ã�� |
| | | CFileFind finder; |
| | | CString strServer_FullPathName =_T(""); |
| | | BOOL bFind = finder.FindFile(strLocal_FullPathName); |
| | |
| | | if (finder.IsDots()) continue; |
| | | if (finder.IsDirectory()) continue; |
| | | |
| | | // 서버 풀 경로명 만들기 |
| | | // ���� Ǯ ��θ� ����� |
| | | strServer_FullPathName = strServer_FinalPath + finder.GetFileName(); |
| | | |
| | | // 로컬 풀 경로명 만들기 |
| | | // ���� Ǯ ��θ� ����� |
| | | strLocal_FullPathName = finder.GetFilePath(); |
| | | |
| | | // 업로드 |
| | | // ���ε� |
| | | if(m_bSharedFolder) |
| | | { |
| | | // [C-PRJ] Image Upload Define - KHT (2020/11/19) |
| | |
| | | { |
| | | strServer_FullPathName = "\\\\"+m_strIP+ "\\" + strServer_FinalPath + finder.GetFileName(); |
| | | } |
| | | if(Param.m_nDataType == FTPDataType_AutoBackUp) // RTMS PC로 Config 파일 업로드 경로 [ 21-03-03 KJG ] |
| | | if(Param.m_nDataType == FTPDataType_AutoBackUp) // RTMS PC�� Config ���� ���ε� ��� [ 21-03-03 KJG ] |
| | | { |
| | | strServer_FullPathName = "\\\\"+ strConfigBackUpIp + "\\" + strServer_FinalPath + finder.GetFileName(); |
| | | } |
| | | strServer_FullPathName.MakeLower(); |
| | | strServer_FullPathName.Replace("/", "\\"); |
| | | //LYW |
| | | // ���� ��ο� �ش� Raw������ �ִٸ� �ð��� �ٿ��� ���(Rename) [ 21-04-16 KJG ] |
| | | if(Param.m_nDataType ==FTPDataType_Raw && m_bBDIStackDown) |
| | | { |
| | | CFileFind cfinder; |
| | | BOOL bFileExist = cfinder.FindFile(strServer_FullPathName); |
| | | if(bFileExist) |
| | | { |
| | | CString strCreationTime; |
| | | CTime tmFileCreation; |
| | | |
| | | cfinder.FindNextFile(); |
| | | cfinder.GetLastWriteTime(tmFileCreation); |
| | | strCreationTime.Format(_T("_%04d%02d%02d%02d%02d%02d"), |
| | | tmFileCreation.GetYear(), tmFileCreation.GetMonth(), tmFileCreation.GetDay(), tmFileCreation.GetHour(), tmFileCreation.GetMinute(), tmFileCreation.GetSecond()); |
| | | CFile::Rename(strServer_FullPathName, strServer_FullPathName + strCreationTime); |
| | | DisplayResultMessage(bUploadResult, "Exist RawFile Change RawFile Name %s",strServer_FullPathName + strCreationTime); |
| | | Sleep(30); // Rename ���ð� |
| | | } |
| | | } |
| | | //LYW |
| | | bUploadResult = CopyFile(strLocal_FullPathName, strServer_FullPathName, FALSE); |
| | | CopyFile(strLocal_FullPathName,strServerSubRawFileFullPathName, FALSE); |
| | | } |
| | |
| | | int a = 0; |
| | | } |
| | | |
| | | // 결과 로그 출력 |
| | | // ��� �α� ��� |
| | | DisplayResultMessage(bUploadResult, strServer_FullPathName, strLocal_FullPathName); |
| | | } |
| | | finder.Close(); |
| | | |
| | | if(Param.m_nDataType == FTPDataType_Image && m_bWSIChk) |
| | | { |
| | | // WSI 로컬 풀 경로명 만들기 |
| | | // WSI ���� Ǯ ��θ� ����� |
| | | CString strWSILocal_FullPathName = Param.m_strLocal_FolderName; |
| | | strWSILocal_FullPathName += _T("\\WSI\\"); |
| | | strWSILocal_FullPathName += Param.m_strLocal_FileName; |
| | | |
| | | // WSI 로컬 경로에서 올릴 파일 찾기 |
| | | // WSI ���� ��ο��� �ø� ���� ã�� |
| | | CFileFind finder; |
| | | CString strServer_WSIFullPathName =_T(""); |
| | | BOOL bFind = finder.FindFile(strWSILocal_FullPathName); |
| | |
| | | if (finder.IsDots()) continue; |
| | | if (finder.IsDirectory()) continue; |
| | | |
| | | // 서버 풀 경로명 만들기 |
| | | // ���� Ǯ ��θ� ����� |
| | | strServer_WSIFullPathName = strServer_WSIFinalPath + finder.GetFileName(); |
| | | |
| | | // 로컬 풀 경로명 만들기 |
| | | // ���� Ǯ ��θ� ����� |
| | | strWSILocal_FullPathName = finder.GetFilePath(); |
| | | |
| | | // 업로드 |
| | | // ���ε� |
| | | if(m_bSharedFolder) |
| | | { |
| | | strServer_WSIFullPathName = "\\\\"+m_strIP2+ "\\" + strServer_WSIFinalPath + finder.GetFileName(); |
| | |
| | | int a = 0; |
| | | } |
| | | |
| | | // 결과 로그 출력 |
| | | // ��� �α� ��� |
| | | DisplayResultMessage(bUploadResult, strServer_WSIFullPathName, strWSILocal_FullPathName); |
| | | } |
| | | finder.Close(); |
| | |
| | | |
| | | RTMSFile.Format(RTMSFile + "%04d%02d%02d%02d%02d%02d.Signal",time.GetYear(), time.GetMonth(), time.GetDay(), time.GetHour(), time.GetMinute(), time.GetSecond()); |
| | | |
| | | //파일 이동 |
| | | bCopy = ::CopyFile(Param.m_strRTMS_FileName, RTMSFile,FALSE); |
| | | //���� �̵� |
| | | bUploadResult = ::CopyFile(Param.m_strRTMS_FileName, RTMSFile,FALSE); |
| | | |
| | | DisplayResultMessage(bCopy,Param.m_strRTMS_FileName,RTMSFile); |
| | | DisplayResultMessage(bUploadResult,Param.m_strRTMS_FileName,RTMSFile); |
| | | |
| | | } |
| | | |
| | | // 시그널 파일을 업로드해야하면. |
| | | // �ñ׳� ������ ���ε��ؾ��ϸ�. |
| | | if( Param.m_nCreateSignalFile == 1) |
| | | { |
| | | Upload_Signal(Param); |
| | |
| | | if(m_bSharedFolder == FALSE && m_pConnection == NULL) |
| | | return FALSE; |
| | | |
| | | // 서버 최종 경로 |
| | | // ���� ���� ��� |
| | | CString strServer_FinalPath = m_strDefaultFolderPath3 + Param.m_strServer_FolderName + "/"; |
| | | |
| | | //201208 CJH - Stack 용 추가 |
| | | //201208 CJH - Stack �� �߰� |
| | | if(m_bSharedFolder) |
| | | { |
| | | CString strCreatePath; |
| | |
| | | ChangeDirectory(strServer_FinalPath, TRUE); |
| | | } |
| | | |
| | | // 로컬 최종 경로 |
| | | // ���� ���� ��� |
| | | BOOL bDownResult = TRUE; |
| | | CString strLocal_FullPathName = Param.m_strLocal_FolderName; |
| | | strLocal_FullPathName += _T("\\"); |
| | | |
| | | try |
| | | { |
| | | // 서버 최종 파일 |
| | | // ���� ���� ���� |
| | | if(m_bSharedFolder) |
| | | { |
| | | strServer_FinalPath = "\\\\"+m_strIP3+ m_strDefaultFolderPath3 + Param.m_strServer_FolderName + "/" ; |
| | |
| | | |
| | | CString strValue = finder.GetFileName(); |
| | | |
| | | // 로컬 풀 경로 만들기 |
| | | // ���� Ǯ ��� ����� |
| | | strLocal_FullFileName = strLocal_FullPathName + Param.m_strLocal_FileName; |
| | | |
| | | CString strServerFileName = strServer_FinalPath + finder.GetFileName(); |
| | | // 다운로드 |
| | | // �ٿ�ε� |
| | | bDownResult = bDownResult & CopyFile(strServerFileName, strLocal_FullFileName, FALSE); |
| | | |
| | | // 결과 로그 출력 |
| | | // ��� �α� ��� |
| | | DisplayResultMessage(bDownResult, strServerFileName, strLocal_FullFileName); |
| | | |
| | | } |
| | |
| | | |
| | | CString strValue = finder.GetFileName(); |
| | | |
| | | // 로컬 풀 경로 만들기 |
| | | // ���� Ǯ ��� ����� |
| | | strLocal_FullFileName = strLocal_FullPathName + Param.m_strServer_FileName;//finder.GetFileName(); |
| | | |
| | | // 서버 풀 경로 가져오기 |
| | | // ���� Ǯ ��� �������� |
| | | strServer_FinalPath = strServer_FinalPath;//finder.GetFilePath(); |
| | | |
| | | // 다운로드 |
| | | // �ٿ�ε� |
| | | bDownResult = bDownResult & m_pConnection->GetFile(strServer_FinalPath, strLocal_FullFileName, FALSE); |
| | | |
| | | // 결과 로그 출력 |
| | | // ��� �α� ��� |
| | | DisplayResultMessage(bDownResult, strServer_FinalPath, strLocal_FullFileName); |
| | | } |
| | | finder.Close(); |
| | |
| | | |
| | | switch(dwErrorCode) |
| | | { |
| | | case ERROR_INTERNET_OUT_OF_HANDLES : strRet = _T("ERROR_INTERNET_OUT_OF_HANDLES 할당할 수 있는 인터넷 핸들이 없습니다. "); break; |
| | | case ERROR_INTERNET_TIMEOUT : strRet = _T("ERROR_INTERNET_TIMEOUT 작업 시간을 초과했습니다. "); break; |
| | | case ERROR_INTERNET_EXTENDED_ERROR : strRet = _T("ERROR_INTERNET_EXTENDED_ERROR 서버에서 확장 정보를 반환했습니다. "); break; |
| | | case ERROR_INTERNET_INTERNAL_ERROR : strRet = _T("ERROR_INTERNET_INTERNAL_ERROR Microsoft 인터넷 확장에서 내부 오류가 발생했습니다. "); break; |
| | | case ERROR_INTERNET_INVALID_URL : strRet = _T("ERROR_INTERNET_INVALID_URL 잘못된 URL입니다. "); break; |
| | | case ERROR_INTERNET_UNRECOGNIZED_SCHEME : strRet = _T("ERROR_INTERNET_UNRECOGNIZED_SCHEME URL에서 인식된 프로토콜을 사용하지 않습니다. "); break; |
| | | case ERROR_INTERNET_NAME_NOT_RESOLVED : strRet = _T("ERROR_INTERNET_NAME_NOT_RESOLVED 서버 이름이나 주소를 확인할 수 없습니다. "); break; |
| | | case ERROR_INTERNET_PROTOCOL_NOT_FOUND : strRet = _T("ERROR_INTERNET_PROTOCOL_NOT_FOUND 필요한 기능이 포함된 프로토콜을 찾을 수 없습니다. "); break; |
| | | case ERROR_INTERNET_INVALID_OPTION : strRet = _T("ERROR_INTERNET_INVALID_OPTION 잘못된 옵션입니다. "); break; |
| | | case ERROR_INTERNET_BAD_OPTION_LENGTH : strRet = _T("ERROR_INTERNET_BAD_OPTION_LENGTH 옵션 종류에 대해 길이가 맞지 않습니다. "); break; |
| | | case ERROR_INTERNET_OPTION_NOT_SETTABLE : strRet = _T("ERROR_INTERNET_OPTION_NOT_SETTABLE 옵션 값을 설정할 수 없습니다. "); break; |
| | | case ERROR_INTERNET_SHUTDOWN : strRet = _T("ERROR_INTERNET_SHUTDOWN Microsoft 인터넷 확장 지원이 종료되었습니다. "); break; |
| | | case ERROR_INTERNET_INCORRECT_USER_NAME : strRet = _T("ERROR_INTERNET_INCORRECT_USER_NAME 사용할 수 없는 사용자 이름입니다. "); break; |
| | | case ERROR_INTERNET_INCORRECT_PASSWORD : strRet = _T("ERROR_INTERNET_INCORRECT_PASSWORD 사용할 수 없는 암호입니다. "); break; |
| | | case ERROR_INTERNET_LOGIN_FAILURE : strRet = _T("ERROR_INTERNET_LOGIN_FAILURE 로그인 요청이 거부되었습니다. "); break; |
| | | case ERROR_INTERNET_OUT_OF_HANDLES : strRet = _T("ERROR_INTERNET_OUT_OF_HANDLES �Ҵ��� �� �ִ� ���ͳ� �ڵ��� �����ϴ�. "); break; |
| | | case ERROR_INTERNET_TIMEOUT : strRet = _T("ERROR_INTERNET_TIMEOUT �۾� �ð��� �ʰ��߽��ϴ�. "); break; |
| | | case ERROR_INTERNET_EXTENDED_ERROR : strRet = _T("ERROR_INTERNET_EXTENDED_ERROR �������� Ȯ�� ������ ��ȯ�߽��ϴ�. "); break; |
| | | case ERROR_INTERNET_INTERNAL_ERROR : strRet = _T("ERROR_INTERNET_INTERNAL_ERROR Microsoft ���ͳ� Ȯ�忡�� ���� ������ ���߽��ϴ�. "); break; |
| | | case ERROR_INTERNET_INVALID_URL : strRet = _T("ERROR_INTERNET_INVALID_URL �߸��� URL�Դϴ�. "); break; |
| | | case ERROR_INTERNET_UNRECOGNIZED_SCHEME : strRet = _T("ERROR_INTERNET_UNRECOGNIZED_SCHEME URL���� �νĵ� ���������� ������� �ʽ��ϴ�. "); break; |
| | | case ERROR_INTERNET_NAME_NOT_RESOLVED : strRet = _T("ERROR_INTERNET_NAME_NOT_RESOLVED ���� �̸��̳� �ּҸ� Ȯ���� �� �����ϴ�. "); break; |
| | | case ERROR_INTERNET_PROTOCOL_NOT_FOUND : strRet = _T("ERROR_INTERNET_PROTOCOL_NOT_FOUND �ʿ��� ����� ���Ե� ���������� ã�� �� �����ϴ�. "); break; |
| | | case ERROR_INTERNET_INVALID_OPTION : strRet = _T("ERROR_INTERNET_INVALID_OPTION �߸��� �ɼ��Դϴ�. "); break; |
| | | case ERROR_INTERNET_BAD_OPTION_LENGTH : strRet = _T("ERROR_INTERNET_BAD_OPTION_LENGTH �ɼ� ������ ���� ���̰� ���� �ʽ��ϴ�. "); break; |
| | | case ERROR_INTERNET_OPTION_NOT_SETTABLE : strRet = _T("ERROR_INTERNET_OPTION_NOT_SETTABLE �ɼ� ���� ������ �� �����ϴ�. "); break; |
| | | case ERROR_INTERNET_SHUTDOWN : strRet = _T("ERROR_INTERNET_SHUTDOWN Microsoft ���ͳ� Ȯ�� ������ ����Ǿ����ϴ�. "); break; |
| | | case ERROR_INTERNET_INCORRECT_USER_NAME : strRet = _T("ERROR_INTERNET_INCORRECT_USER_NAME ����� �� ���� ����� �̸��Դϴ�. "); break; |
| | | case ERROR_INTERNET_INCORRECT_PASSWORD : strRet = _T("ERROR_INTERNET_INCORRECT_PASSWORD ����� �� ���� ��ȣ�Դϴ�. "); break; |
| | | case ERROR_INTERNET_LOGIN_FAILURE : strRet = _T("ERROR_INTERNET_LOGIN_FAILURE �α��� ��û�� �źεǾ����ϴ�. "); break; |
| | | case ERROR_INTERNET_INVALID_OPERATION : strRet = _T("ERROR_INTERNET_INVALID_OPERATION "); break; |
| | | case ERROR_INTERNET_OPERATION_CANCELLED : strRet = _T("ERROR_INTERNET_OPERATION_CANCELLED 작업이 취소되었습니다. "); break; |
| | | case ERROR_INTERNET_INCORRECT_HANDLE_TYPE : strRet = _T("ERROR_INTERNET_INCORRECT_HANDLE_TYPE 제공된 핸들은 요청한 작업에 사용할 수 없는 종류입니다. "); break; |
| | | case ERROR_INTERNET_INCORRECT_HANDLE_STATE : strRet = _T("ERROR_INTERNET_INCORRECT_HANDLE_STATE 요청한 작업에 사용할 수 없는 상태의 핸들입니다. "); break; |
| | | case ERROR_INTERNET_NOT_PROXY_REQUEST : strRet = _T("ERROR_INTERNET_NOT_PROXY_REQUEST 프록시 세션에서 요청할 수 없습니다. "); break; |
| | | case ERROR_INTERNET_REGISTRY_VALUE_NOT_FOUND : strRet = _T("ERROR_INTERNET_REGISTRY_VALUE_NOT_FOUND 레지스트리 값을 찾을 수 없습니다. "); break; |
| | | case ERROR_INTERNET_BAD_REGISTRY_PARAMETER : strRet = _T("ERROR_INTERNET_BAD_REGISTRY_PARAMETER 레지스트리 매개 변수가 맞지 않습니다. "); break; |
| | | case ERROR_INTERNET_NO_DIRECT_ACCESS : strRet = _T("ERROR_INTERNET_NO_DIRECT_ACCESS 직접 인터넷에 액세스할 수 없습니다. "); break; |
| | | case ERROR_INTERNET_NO_CONTEXT : strRet = _T("ERROR_INTERNET_NO_CONTEXT 컨텍스트 값을 제공하지 않았습니다. "); break; |
| | | case ERROR_INTERNET_NO_CALLBACK : strRet = _T("ERROR_INTERNET_NO_CALLBACK 상태 콜백이 제공되지 않았습니다. "); break; |
| | | case ERROR_INTERNET_REQUEST_PENDING : strRet = _T("ERROR_INTERNET_REQUEST_PENDING 아직 해결되지 않은 요청이 있습니다. "); break; |
| | | case ERROR_INTERNET_INCORRECT_FORMAT : strRet = _T("ERROR_INTERNET_INCORRECT_FORMAT 정보 형식이 맞지 않습니다. "); break; |
| | | case ERROR_INTERNET_ITEM_NOT_FOUND : strRet = _T("ERROR_INTERNET_ITEM_NOT_FOUND 요청한 항목을 찾을 수 없습니다. "); break; |
| | | case ERROR_INTERNET_CANNOT_CONNECT : strRet = _T("ERROR_INTERNET_CANNOT_CONNECT 서버에 연결할 수 없습니다. "); break; |
| | | case ERROR_INTERNET_CONNECTION_ABORTED : strRet = _T("ERROR_INTERNET_CONNECTION_ABORTED 서버와의 연결이 비정상적으로 종료되었습니다. "); break; |
| | | case ERROR_INTERNET_CONNECTION_RESET : strRet = _T("ERROR_INTERNET_CONNECTION_RESET 서버와의 연결을 다시 설정했습니다. "); break; |
| | | case ERROR_INTERNET_FORCE_RETRY : strRet = _T("ERROR_INTERNET_FORCE_RETRY 작업을 다시 시도해야 합니다. "); break; |
| | | case ERROR_INTERNET_INVALID_PROXY_REQUEST : strRet = _T("ERROR_INTERNET_INVALID_PROXY_REQUEST 잘못된 프록시 요청입니다. "); break; |
| | | case ERROR_INTERNET_NEED_UI : strRet = _T("ERROR_INTERNET_NEED_UI 작업을 완료하려면 사용자의 조작이 필요합니다. "); break; |
| | | case ERROR_INTERNET_HANDLE_EXISTS : strRet = _T("ERROR_INTERNET_HANDLE_EXISTS 핸들이 이미 있습니다. "); break; |
| | | case ERROR_INTERNET_SEC_CERT_DATE_INVALID : strRet = _T("ERROR_INTERNET_SEC_CERT_DATE_INVALID 인증서 날짜가 잘못되었거나 만료되었습니다. "); break; |
| | | case ERROR_INTERNET_SEC_CERT_CN_INVALID : strRet = _T("ERROR_INTERNET_SEC_CERT_CN_INVALID 인증서 호스트 이름이 잘못되었거나 일치하지 않습니다. "); break; |
| | | case ERROR_INTERNET_HTTP_TO_HTTPS_ON_REDIR : strRet = _T("ERROR_INTERNET_HTTP_TO_HTTPS_ON_REDIR 리디렉션 요청으로 비보안 연결을 보안 연결로 변경합니다. "); break; |
| | | case ERROR_INTERNET_HTTPS_TO_HTTP_ON_REDIR : strRet = _T("ERROR_INTERNET_HTTPS_TO_HTTP_ON_REDIR 리디렉션 요청으로 보안 연결을 비보안 연결로 변경합니다. "); break; |
| | | case ERROR_INTERNET_MIXED_SECURITY : strRet = _T("ERROR_INTERNET_MIXED_SECURITY 보안 및 비보안 연결이 혼합되어 있습니다. "); break; |
| | | case ERROR_INTERNET_CHG_POST_IS_NON_SECURE : strRet = _T("ERROR_INTERNET_CHG_POST_IS_NON_SECURE 비보안 게시로 변경하고 있습니다. "); break; |
| | | case ERROR_INTERNET_POST_IS_NON_SECURE : strRet = _T("ERROR_INTERNET_POST_IS_NON_SECURE 비보안 연결 상태에서 데이터를 게시하고 있습니다. "); break; |
| | | case ERROR_INTERNET_CLIENT_AUTH_CERT_NEEDED : strRet = _T("ERROR_INTERNET_CLIENT_AUTH_CERT_NEEDED 클라이언트 인증을 완료하려면 인증서가 필요합니다. "); break; |
| | | case ERROR_INTERNET_INVALID_CA : strRet = _T("ERROR_INTERNET_INVALID_CA 인증 기관이 잘못되었거나 맞지 않습니다. "); break; |
| | | case ERROR_INTERNET_CLIENT_AUTH_NOT_SETUP : strRet = _T("ERROR_INTERNET_CLIENT_AUTH_NOT_SETUP 클라이언트 인증이 올바르게 설치되지 않았습니다. "); break; |
| | | case ERROR_INTERNET_ASYNC_THREAD_FAILED : strRet = _T("ERROR_INTERNET_ASYNC_THREAD_FAILED Wininet 비동기 스레드에서 오류가 발생했습니다.다시 시작해야 합니다. "); break; |
| | | case ERROR_INTERNET_REDIRECT_SCHEME_CHANGE : strRet = _T("ERROR_INTERNET_REDIRECT_SCHEME_CHANGE 리디렉션 작업 중 프로토콜 스키마가 변경되었습니다. "); break; |
| | | case ERROR_INTERNET_DIALOG_PENDING : strRet = _T("ERROR_INTERNET_DIALOG_PENDING 다시 시도할 때까지 대기 중인 작업이 있습니다. "); break; |
| | | case ERROR_INTERNET_RETRY_DIALOG : strRet = _T("ERROR_INTERNET_RETRY_DIALOG 작업을 다시 시도해야 합니다. "); break; |
| | | case ERROR_INTERNET_HTTPS_HTTP_SUBMIT_REDIR : strRet = _T("ERROR_INTERNET_HTTPS_HTTP_SUBMIT_REDIR 보안 영역 점검에 따라 이 작업은 다시 시도해야 합니다. "); break; |
| | | case ERROR_INTERNET_OPERATION_CANCELLED : strRet = _T("ERROR_INTERNET_OPERATION_CANCELLED �۾��� ��ҵǾ����ϴ�. "); break; |
| | | case ERROR_INTERNET_INCORRECT_HANDLE_TYPE : strRet = _T("ERROR_INTERNET_INCORRECT_HANDLE_TYPE ������ �ڵ��� ��û�� �۾��� ����� �� ���� �����Դϴ�. "); break; |
| | | case ERROR_INTERNET_INCORRECT_HANDLE_STATE : strRet = _T("ERROR_INTERNET_INCORRECT_HANDLE_STATE ��û�� �۾��� ����� �� ���� ������ �ڵ��Դϴ�. "); break; |
| | | case ERROR_INTERNET_NOT_PROXY_REQUEST : strRet = _T("ERROR_INTERNET_NOT_PROXY_REQUEST ���Ͻ� ���ǿ��� ��û�� �� �����ϴ�. "); break; |
| | | case ERROR_INTERNET_REGISTRY_VALUE_NOT_FOUND : strRet = _T("ERROR_INTERNET_REGISTRY_VALUE_NOT_FOUND ������Ʈ�� ���� ã�� �� �����ϴ�. "); break; |
| | | case ERROR_INTERNET_BAD_REGISTRY_PARAMETER : strRet = _T("ERROR_INTERNET_BAD_REGISTRY_PARAMETER ������Ʈ�� �Ű� ������ ���� �ʽ��ϴ�. "); break; |
| | | case ERROR_INTERNET_NO_DIRECT_ACCESS : strRet = _T("ERROR_INTERNET_NO_DIRECT_ACCESS ���� ���ͳݿ� ������ �� �����ϴ�. "); break; |
| | | case ERROR_INTERNET_NO_CONTEXT : strRet = _T("ERROR_INTERNET_NO_CONTEXT ���ؽ�Ʈ ���� �������� �ʾҽ��ϴ�. "); break; |
| | | case ERROR_INTERNET_NO_CALLBACK : strRet = _T("ERROR_INTERNET_NO_CALLBACK ���� �ݹ��� �������� �ʾҽ��ϴ�. "); break; |
| | | case ERROR_INTERNET_REQUEST_PENDING : strRet = _T("ERROR_INTERNET_REQUEST_PENDING ���� �ذ���� ���� ��û�� �ֽ��ϴ�. "); break; |
| | | case ERROR_INTERNET_INCORRECT_FORMAT : strRet = _T("ERROR_INTERNET_INCORRECT_FORMAT ���� ������ ���� �ʽ��ϴ�. "); break; |
| | | case ERROR_INTERNET_ITEM_NOT_FOUND : strRet = _T("ERROR_INTERNET_ITEM_NOT_FOUND ��û�� ���� ã�� �� �����ϴ�. "); break; |
| | | case ERROR_INTERNET_CANNOT_CONNECT : strRet = _T("ERROR_INTERNET_CANNOT_CONNECT ������ ������ �� �����ϴ�. "); break; |
| | | case ERROR_INTERNET_CONNECTION_ABORTED : strRet = _T("ERROR_INTERNET_CONNECTION_ABORTED �������� ������ ������������ ����Ǿ����ϴ�. "); break; |
| | | case ERROR_INTERNET_CONNECTION_RESET : strRet = _T("ERROR_INTERNET_CONNECTION_RESET �������� ������ �ٽ� �����߽��ϴ�. "); break; |
| | | case ERROR_INTERNET_FORCE_RETRY : strRet = _T("ERROR_INTERNET_FORCE_RETRY �۾��� �ٽ� �õ��ؾ� �մϴ�. "); break; |
| | | case ERROR_INTERNET_INVALID_PROXY_REQUEST : strRet = _T("ERROR_INTERNET_INVALID_PROXY_REQUEST �߸��� ���Ͻ� ��û�Դϴ�. "); break; |
| | | case ERROR_INTERNET_NEED_UI : strRet = _T("ERROR_INTERNET_NEED_UI �۾��� �Ϸ��Ϸ��� ������� ������ �ʿ��մϴ�. "); break; |
| | | case ERROR_INTERNET_HANDLE_EXISTS : strRet = _T("ERROR_INTERNET_HANDLE_EXISTS �ڵ��� �̹� �ֽ��ϴ�. "); break; |
| | | case ERROR_INTERNET_SEC_CERT_DATE_INVALID : strRet = _T("ERROR_INTERNET_SEC_CERT_DATE_INVALID ������ ��¥�� �߸��Ǿ��ų� ����Ǿ����ϴ�. "); break; |
| | | case ERROR_INTERNET_SEC_CERT_CN_INVALID : strRet = _T("ERROR_INTERNET_SEC_CERT_CN_INVALID ������ ȣ��Ʈ �̸��� �߸��Ǿ��ų� ��ġ���� �ʽ��ϴ�. "); break; |
| | | case ERROR_INTERNET_HTTP_TO_HTTPS_ON_REDIR : strRet = _T("ERROR_INTERNET_HTTP_TO_HTTPS_ON_REDIR ���� ��û���� �� ������ ���� ����� �����մϴ�. "); break; |
| | | case ERROR_INTERNET_HTTPS_TO_HTTP_ON_REDIR : strRet = _T("ERROR_INTERNET_HTTPS_TO_HTTP_ON_REDIR ���� ��û���� ���� ������ �� ����� �����մϴ�. "); break; |
| | | case ERROR_INTERNET_MIXED_SECURITY : strRet = _T("ERROR_INTERNET_MIXED_SECURITY ���� �� �� ������ ȥ�յǾ� �ֽ��ϴ�. "); break; |
| | | case ERROR_INTERNET_CHG_POST_IS_NON_SECURE : strRet = _T("ERROR_INTERNET_CHG_POST_IS_NON_SECURE �� �Խ÷� �����ϰ� �ֽ��ϴ�. "); break; |
| | | case ERROR_INTERNET_POST_IS_NON_SECURE : strRet = _T("ERROR_INTERNET_POST_IS_NON_SECURE �� ���� ���¿��� ������ �Խ��ϰ� �ֽ��ϴ�. "); break; |
| | | case ERROR_INTERNET_CLIENT_AUTH_CERT_NEEDED : strRet = _T("ERROR_INTERNET_CLIENT_AUTH_CERT_NEEDED Ŭ���̾�Ʈ ������ �Ϸ��Ϸ��� �������� �ʿ��մϴ�. "); break; |
| | | case ERROR_INTERNET_INVALID_CA : strRet = _T("ERROR_INTERNET_INVALID_CA ���� ����� �߸��Ǿ��ų� ���� �ʽ��ϴ�. "); break; |
| | | case ERROR_INTERNET_CLIENT_AUTH_NOT_SETUP : strRet = _T("ERROR_INTERNET_CLIENT_AUTH_NOT_SETUP Ŭ���̾�Ʈ ������ �ùٸ��� ��ġ���� �ʾҽ��ϴ�. "); break; |
| | | case ERROR_INTERNET_ASYNC_THREAD_FAILED : strRet = _T("ERROR_INTERNET_ASYNC_THREAD_FAILED Wininet �� �����忡�� ������ ���߽��ϴ�.�ٽ� �����ؾ� �մϴ�. "); break; |
| | | case ERROR_INTERNET_REDIRECT_SCHEME_CHANGE : strRet = _T("ERROR_INTERNET_REDIRECT_SCHEME_CHANGE ���� �۾� �� �������� ��Ű���� ����Ǿ����ϴ�. "); break; |
| | | case ERROR_INTERNET_DIALOG_PENDING : strRet = _T("ERROR_INTERNET_DIALOG_PENDING �ٽ� �õ��� ������ ��� ���� �۾��� �ֽ��ϴ�. "); break; |
| | | case ERROR_INTERNET_RETRY_DIALOG : strRet = _T("ERROR_INTERNET_RETRY_DIALOG �۾��� �ٽ� �õ��ؾ� �մϴ�. "); break; |
| | | case ERROR_INTERNET_HTTPS_HTTP_SUBMIT_REDIR : strRet = _T("ERROR_INTERNET_HTTPS_HTTP_SUBMIT_REDIR ���� ���� ���˿� ���� �� �۾��� �ٽ� �õ��ؾ� �մϴ�. "); break; |
| | | case ERROR_INTERNET_INSERT_CDROM : strRet = _T("ERROR_INTERNET_INSERT_CDROM "); break; |
| | | case ERROR_INTERNET_FORTEZZA_LOGIN_NEEDED : strRet = _T("ERROR_INTERNET_FORTEZZA_LOGIN_NEEDED "); break; |
| | | case ERROR_INTERNET_SEC_CERT_ERRORS : strRet = _T("ERROR_INTERNET_SEC_CERT_ERRORS "); break; |
| | |
| | | |
| | | // setter |
| | | void SetConnectionTimeout(int nTimeout); |
| | | void SetConnectionInfo(CString strIP, CString strUserID, CString strPassword, int nPort, int nTimeout, CString strHomePath, CString strIP2, CString strUserID2, CString strPassword2, int nPort2, int nTimeout2, CString strHomePath2, CString strIP3, CString strUserID3, CString strPassword3, int nPort3, int nTimeout3, CString strHomePath3, BOOL bPassive, BOOL WSIChk); |
| | | void SetConnectionInfo(CString strIP, CString strUserID, CString strPassword, int nPort, int nTimeout, CString strHomePath, CString strIP2, CString strUserID2, CString strPassword2, int nPort2, int nTimeout2, CString strHomePath2, CString strIP3, CString strUserID3, CString strPassword3, int nPort3, int nTimeout3, CString strHomePath3, BOOL bPassive, BOOL WSIChk, BOOL bBDIStackDown); |
| | | void SetIFTP2P(IFTPThreadPool2Parent *pIFTP2P) { m_pIFTP2P = pIFTP2P; } |
| | | |
| | | // getter |
| | |
| | | |
| | | BOOL m_bSharedFolder; |
| | | BOOL m_bWSIChk; |
| | | BOOL m_bBDIStackDown; |
| | | }; |
| | | |
| | |
| | | LTEXT "IP(2) :",IDC_STATIC,9,402,22,8 |
| | | EDITTEXT IDC_EDIT_PORT2,278,400,24,14,ES_AUTOHSCROLL |
| | | LTEXT "Port :",IDC_STATIC,258,402,19,8 |
| | | CONTROL "Passive Mode",IDC_CHECK_PASSIVE_MODE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,129,457,59,15 |
| | | CONTROL "Passive Mode",IDC_CHECK_PASSIVE_MODE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,129,457,56,15 |
| | | GROUPBOX "업로드 로그",IDC_STATIC,7,219,457,148 |
| | | LISTBOX IDC_LIST_LOG,13,79,444,134,LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_TABSTOP |
| | | LISTBOX IDC_LIST_LOG_UP,13,229,444,134,LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_TABSTOP |
| | |
| | | LTEXT "IP(3) :",IDC_STATIC,10,421,22,8 |
| | | EDITTEXT IDC_EDIT_PORT3,278,420,24,14,ES_AUTOHSCROLL |
| | | LTEXT "Port :",IDC_STATIC,258,421,19,8 |
| | | CONTROL "WSI Use",IDC_CHECK_WSI,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,192,458,59,15 |
| | | CONTROL "WSI Use",IDC_CHECK_WSI,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,192,458,39,15 |
| | | CONTROL "BDI Stack DownLoad",IDC_CHECK_BDI_STACK_DOWNLOAD,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,235,458,82,15 |
| | | END |
| | | |
| | | IDD_DLG_UPLOAD_LIST DIALOGEX 0, 0, 407, 266 |
| | |
| | | , m_strHomePath2(_T("/")) |
| | | , m_nPort2(21) |
| | | , m_bPassiveMode(FALSE) |
| | | , m_bCheckBDIStackDown(FALSE) |
| | | { |
| | | m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME); |
| | | |
| | |
| | | DDX_Text(pDX, IDC_EDIT_TIMEOUT3, m_nTimeOut3); |
| | | DDX_Text(pDX, IDC_EDIT_HOMEPATH3, m_strHomePath3); |
| | | DDX_Control(pDX, IDC_CHECK_WSI, m_chkWSI); |
| | | DDX_Check(pDX, IDC_CHECK_BDI_STACK_DOWNLOAD, m_bCheckBDIStackDown); |
| | | } |
| | | |
| | | BEGIN_MESSAGE_MAP(CFTPUploaderDlg, CDialog) |
| | |
| | | ON_COMMAND(ID_FILE_CLOSE, &CFTPUploaderDlg::OnFileClose) |
| | | ON_BN_CLICKED(IDC_BUTTON_DOWNLOAD_LIST, &CFTPUploaderDlg::OnBnClickedButtonDownloadList) |
| | | ON_BN_CLICKED(IDC_BUTTON_UPLOAD_LIST, &CFTPUploaderDlg::OnBnClickedButtonUploadList) |
| | | ON_BN_CLICKED(IDC_CHECK_BDI_STACK_DOWNLOAD, &CFTPUploaderDlg::OnBnClickedCheckBdiStackDownload) |
| | | ON_BN_CLICKED(IDC_CHECK_WSI, &CFTPUploaderDlg::OnBnClickedCheckWsi) |
| | | ON_BN_CLICKED(IDC_CHECK_PASSIVE_MODE, &CFTPUploaderDlg::OnBnClickedCheckPassiveMode) |
| | | END_MESSAGE_MAP() |
| | | |
| | | |
| | |
| | | if (m_pFTPThreadPool_Down) |
| | | { |
| | | m_pFTPThreadPool_Down->SetIFTP2P(this); |
| | | m_pFTPThreadPool_Down->SetConnectionInfo(strIP,m_strID,m_strPW,m_nPort,m_nTimeOut,m_strHomePath,strIP2,m_strID2,m_strPW2,m_nPort2,m_nTimeOut2,m_strHomePath2, strIP3,m_strID3,m_strPW3,m_nPort3,m_nTimeOut3,m_strHomePath3, m_bPassiveMode, m_bWSIChk); |
| | | m_pFTPThreadPool_Down->SetConnectionInfo(strIP,m_strID,m_strPW,m_nPort,m_nTimeOut,m_strHomePath,strIP2,m_strID2,m_strPW2,m_nPort2,m_nTimeOut2,m_strHomePath2, strIP3,m_strID3,m_strPW3,m_nPort3,m_nTimeOut3,m_strHomePath3, m_bPassiveMode, m_bWSIChk, m_bCheckBDIStackDown); |
| | | m_pFTPThreadPool_Down->StartThread(); |
| | | } |
| | | |
| | |
| | | if (m_pFTPThreadPool_Up) |
| | | { |
| | | m_pFTPThreadPool_Up->SetIFTP2P(this); |
| | | m_pFTPThreadPool_Up->SetConnectionInfo(strIP,m_strID,m_strPW,m_nPort,m_nTimeOut,m_strHomePath,strIP2,m_strID2,m_strPW2,m_nPort2,m_nTimeOut2,m_strHomePath2, strIP3,m_strID3,m_strPW3,m_nPort3,m_nTimeOut3,m_strHomePath3, m_bPassiveMode, m_bWSIChk); |
| | | m_pFTPThreadPool_Up->SetConnectionInfo(strIP,m_strID,m_strPW,m_nPort,m_nTimeOut,m_strHomePath,strIP2,m_strID2,m_strPW2,m_nPort2,m_nTimeOut2,m_strHomePath2, strIP3,m_strID3,m_strPW3,m_nPort3,m_nTimeOut3,m_strHomePath3, m_bPassiveMode, m_bWSIChk, m_bCheckBDIStackDown); |
| | | m_pFTPThreadPool_Up->StartThread(); |
| | | } |
| | | |
| | |
| | | |
| | | m_bWSIChk = m_chkWSI.GetCheck(); |
| | | |
| | | m_pFTPThreadPool_Down->SetConnectionInfo(strIP,m_strID,m_strPW,m_nPort,m_nTimeOut,m_strHomePath,strIP2,m_strID2,m_strPW2,m_nPort2,m_nTimeOut2,m_strHomePath2, strIP3, m_strID3, m_strPW3, m_nPort3, m_nTimeOut3, m_strHomePath3, m_bPassiveMode, m_bWSIChk); |
| | | m_pFTPThreadPool_Up->SetConnectionInfo(strIP,m_strID,m_strPW,m_nPort,m_nTimeOut,m_strHomePath,strIP2,m_strID2,m_strPW2,m_nPort2,m_nTimeOut2,m_strHomePath2,strIP3, m_strID3, m_strPW3, m_nPort3, m_nTimeOut3, m_strHomePath3, m_bPassiveMode, m_bWSIChk); |
| | | m_pFTPThreadPool_Down->SetConnectionInfo(strIP,m_strID,m_strPW,m_nPort,m_nTimeOut,m_strHomePath,strIP2,m_strID2,m_strPW2,m_nPort2,m_nTimeOut2,m_strHomePath2, strIP3, m_strID3, m_strPW3, m_nPort3, m_nTimeOut3, m_strHomePath3, m_bPassiveMode, m_bWSIChk, m_bCheckBDIStackDown); |
| | | m_pFTPThreadPool_Up->SetConnectionInfo(strIP,m_strID,m_strPW,m_nPort,m_nTimeOut,m_strHomePath,strIP2,m_strID2,m_strPW2,m_nPort2,m_nTimeOut2,m_strHomePath2,strIP3, m_strID3, m_strPW3, m_nPort3, m_nTimeOut3, m_strHomePath3, m_bPassiveMode, m_bWSIChk, m_bCheckBDIStackDown); |
| | | |
| | | CString strTestFile = _T(""); |
| | | CString strSubFolder = _T("LotHistory"); |
| | |
| | | |
| | | m_bWSIChk = _tstoi( (CString)(CStringA)strRegBuf ); |
| | | |
| | | //BDI Stack Down |
| | | memset(strRegBuf,0,sizeof(char)*255); |
| | | if(ReadString(SHCU,KEY_FTP,_T("BDI_STACK_DOWN"),(LPBYTE)strRegBuf,255) == FALSE) |
| | | { |
| | | strcpy_s(strRegBuf,sizeof(char)*255,"1"); |
| | | } |
| | | |
| | | m_bCheckBDIStackDown = _tstoi( (CString)(CStringA)strRegBuf ); |
| | | |
| | | UpdateData(FALSE); |
| | | return TRUE; |
| | | } |
| | |
| | | sprintf_s(strRegBuf, sizeof(char)*255, "%d",m_bWSIChk); |
| | | WriteString(SHCU,KEY_FTP,_T("WSI_USE"),strRegBuf); |
| | | |
| | | // BDI Stack DownLoad |
| | | sprintf_s(strRegBuf, sizeof(char)*255, "%d",(int)m_bCheckBDIStackDown); |
| | | WriteString(SHCU,KEY_FTP,_T("BDI_STACK_DOWN"),strRegBuf);; |
| | | |
| | | m_ctlIPAddress.GetAddress(chIP[0],chIP[1],chIP[2],chIP[3]); |
| | | |
| | | CString strIP = _T(""); |
| | |
| | | CString strIP3 = _T(""); |
| | | strIP3.Format(_T("%d.%d.%d.%d"),chIP[0],chIP[1],chIP[2],chIP[3]); |
| | | |
| | | m_pFTPThreadPool_Down->SetConnectionInfo(strIP,m_strID,m_strPW,m_nPort,m_nTimeOut,m_strHomePath,strIP2,m_strID2,m_strPW2,m_nPort2,m_nTimeOut2,m_strHomePath2,strIP3,m_strID3,m_strPW3,m_nPort3,m_nTimeOut3,m_strHomePath3, m_bPassiveMode, m_bWSIChk); |
| | | m_pFTPThreadPool_Up->SetConnectionInfo(strIP,m_strID,m_strPW,m_nPort,m_nTimeOut,m_strHomePath,strIP2,m_strID2,m_strPW2,m_nPort2,m_nTimeOut2,m_strHomePath2,strIP3,m_strID3,m_strPW3,m_nPort3,m_nTimeOut3,m_strHomePath3, m_bPassiveMode, m_bWSIChk); |
| | | m_pFTPThreadPool_Down->SetConnectionInfo(strIP,m_strID,m_strPW,m_nPort,m_nTimeOut,m_strHomePath,strIP2,m_strID2,m_strPW2,m_nPort2,m_nTimeOut2,m_strHomePath2,strIP3,m_strID3,m_strPW3,m_nPort3,m_nTimeOut3,m_strHomePath3, m_bPassiveMode, m_bWSIChk, m_bCheckBDIStackDown); |
| | | m_pFTPThreadPool_Up->SetConnectionInfo(strIP,m_strID,m_strPW,m_nPort,m_nTimeOut,m_strHomePath,strIP2,m_strID2,m_strPW2,m_nPort2,m_nTimeOut2,m_strHomePath2,strIP3,m_strID3,m_strPW3,m_nPort3,m_nTimeOut3,m_strHomePath3, m_bPassiveMode, m_bWSIChk, m_bCheckBDIStackDown); |
| | | |
| | | if(m_nConfigMode == CM_File) |
| | | { |
| | |
| | | // TODO: 여기에 특수화된 코드를 추가 및/또는 기본 클래스를 호출합니다. |
| | | |
| | | return __super::DestroyWindow(); |
| | | } |
| | | } |
| | | |
| | | void CFTPUploaderDlg::OnBnClickedCheckBdiStackDownload() |
| | | { |
| | | // TODO: 여기에 컨트롤 알림 처리기 코드를 추가합니다. |
| | | } |
| | | |
| | | |
| | | void CFTPUploaderDlg::OnBnClickedCheckWsi() |
| | | { |
| | | // TODO: 여기에 컨트롤 알림 처리기 코드를 추가합니다. |
| | | } |
| | | |
| | | |
| | | void CFTPUploaderDlg::OnBnClickedCheckPassiveMode() |
| | | { |
| | | // TODO: 여기에 컨트롤 알림 처리기 코드를 추가합니다. |
| | | } |
| | |
| | | #define TIMER_FTP_UPLOAD_INFO (WM_USER + 112) |
| | | |
| | | #define SHCU HKEY_CURRENT_USER |
| | | #define KEY_FTP _T("Software\\DIT\\FTP\\") // 레지스트리 접근 경로설정 |
| | | #define KEY_FTP _T("Software\\DIT\\FTP\\") // ������Ʈ�� ���� ��μ��� |
| | | #define CONFIGFILENAME _T("FTPUploader.cfg") |
| | | |
| | | #define FTP_LOG_FILE_PATH _T("C:\\DIT_LogData\\") |
| | | #define FTP_LOG_FILE_PATH _T("D:\\DIT_LogData\\") |
| | | #define FTP_LOG_FILE_NAME _T("logFTPUploader") |
| | | #define BLANK_UPDOWNLOAD_PATH _T("c:\\Temp") |
| | | #define BLANK_UPDOWNLOAD_PATH _T("D:\\Temp") |
| | | #define BLANK_DOWNLOAD_FILE _T("!!!H_GLASS_ID_DOWN.IDX") |
| | | #define BLANK_UPLOAD_FILE _T("!!!H_GLASS_ID_UP.IDX") |
| | | |
| | |
| | | BOOL m_bPassiveMode; |
| | | |
| | | BOOL m_bWSIChk; |
| | | BOOL m_bCheckBDIStackDown; |
| | | |
| | | CIPAddressCtrl m_ctlIPAddress2; |
| | | CString m_strID2; |
| | |
| | | CString m_strHomePath2; |
| | | int m_nPort2; |
| | | |
| | | //201218 CJH - IP 추가 |
| | | //201218 CJH - IP �߰� |
| | | CIPAddressCtrl m_ctlIPAddress3; |
| | | CString m_strID3; |
| | | CString m_strPW3; |
| | |
| | | afx_msg void OnBnClickedButtonUploadList(); |
| | | virtual BOOL DestroyWindow(); |
| | | CButton m_chkWSI; |
| | | afx_msg void OnBnClickedCheckBdiStackDownload(); |
| | | afx_msg void OnBnClickedCheckWsi(); |
| | | afx_msg void OnBnClickedCheckPassiveMode(); |
| | | }; |
| | |
| | | #define IDC_EDIT_ID2 1006 |
| | | #define IDC_CHECK_AUTO_UPLOAD 1007 |
| | | #define IDC_LIST_UPLOAD_READY_LIST 1008 |
| | | #define IDC_CHECK_AUTO_UPLOAD3 1008 |
| | | #define IDC_CHECK_BDI_STACK_DOWNLOAD 1008 |
| | | #define IDC_BUTTON_MANUAL_UPLOAD 1009 |
| | | #define IDC_LIST_LOG 1010 |
| | | #define IDC_BUTTON_TEST 1011 |
| | |
| | | int m_nPixelConv; // pixel 단위 좌표 |
| | | int m_nPixelScan; // pixel 단위 좌표 |
| | | |
| | | short m_nPixelSize; // 결함크기 ---------------------------------PS |
| | | /* < KMH 20220707 : #4230 MOD Start > */ |
| | | // 범위 벗어나서 음수로 표기되면 D_Col Fail |
| | | //short m_nPixelSize; // 결함크기 ---------------------------------PS |
| | | int m_nPixelSize; // 결함크기 ---------------------------------PS |
| | | /* < KMH 20220707 : #4230 MOD End > */ |
| | | short/*SERVER_DefectType*/ m_DefectType; // 결함 타입 ---------------------------------DT |
| | | short/*SERVER_DefectSubType*/ m_DefectSubType; // 결함의 판정상태. |
| | | short/*SERVER_DefectBDType*/ m_DefectBDType; // 결함 타입 - Bright, Dark, Both |
| | |
| | | short m_nStackStepCount; // Stack 수 |
| | | short m_nStackColorIdx; // Color를 선택하는 인덱스. |
| | | //CString m_strStackStep[CFDEFECT_STACKCOUNT]; // Stack Step. |
| | | char m_strStackFirst[60]; // Stack Step. //201221 CJH - 최대 사이즈 60bytes |
| | | /* < KMH 20220712 : #4230 MOD Start > */ |
| | | // char m_strStackFirst[60]; // Stack Step. //201221 CJH - 최대 사이즈 60bytes |
| | | char m_strStackFirst[400]; // Stack Step. // 400 bytes 확장요청 : SDC 채승석P |
| | | /* < KMH 20220712 : #4230 MOD End > */ |
| | | char m_strUnitID[16]; // 유닛아이디 |
| | | |
| | | int m_ClassificationType; // enum ClassificationType { ClassType_None= 0, ClassType_PI_Over= 1, ClassType_PI_Under= 2, ClassType_TFE_Circle= 3, ClassType_Bubble, ClassType_Scratch, ClassType_Particle}; Classification Type, PI나 TFE등 추가 분류 알고리즘 적용 결과. |
| | |
| | | if (m_nAxisCount<1) return; |
| | | |
| | | //Alive |
| | | if (ReadAddressValue(50, m_nMotorAlive)) |
| | | { |
| | | if (m_nMotorAlivePrev != m_nMotorAlive) |
| | | { |
| | | dwLastAliveTick = GetTickCount(); |
| | | } |
| | | m_nAutoEnablePrev = m_nAutoEnable; |
| | | |
| | | if (GetTickCount() - dwLastAliveTick >15000 && dwLastAliveTick != 0) |
| | | { |
| | | m_pMC2P->IMC2P_SendMotorAliveErrorAlram(); |
| | | m_pMC2P->IMC2P_DisplayMessage(m_nIndex, _T("Motor Alive Error!")); |
| | | dwLastAliveTick = GetTickCount(); |
| | | } |
| | | } |
| | | else |
| | | { |
| | | m_pMC2P->IMC2P_SendMotorAliveErrorAlram(); |
| | | m_pMC2P->IMC2P_DisplayMessage(m_nIndex, _T("Motor Alive Read Fail!")); |
| | | dwLastAliveTick = GetTickCount(); |
| | | } |
| | | // if (ReadAddressValue(50, m_nMotorAlive)) |
| | | // { |
| | | // if (m_nMotorAlivePrev != m_nMotorAlive) |
| | | // { |
| | | // dwLastAliveTick = GetTickCount(); |
| | | // } |
| | | // m_nAutoEnablePrev = m_nAutoEnable; |
| | | // |
| | | // if (GetTickCount() - dwLastAliveTick >15000 && dwLastAliveTick != 0) |
| | | // { |
| | | // m_pMC2P->IMC2P_SendMotorAliveErrorAlram(); |
| | | // m_pMC2P->IMC2P_DisplayMessage(m_nIndex, _T("Motor Alive Error!")); |
| | | // dwLastAliveTick = GetTickCount(); |
| | | // } |
| | | // } |
| | | // else |
| | | // { |
| | | // m_pMC2P->IMC2P_SendMotorAliveErrorAlram(); |
| | | // m_pMC2P->IMC2P_DisplayMessage(m_nIndex, _T("Motor Alive Read Fail!")); |
| | | // dwLastAliveTick = GetTickCount(); |
| | | // } |
| | | |
| | | // auto enable |
| | | const CMotorCommonAddr *pAddr = m_ControlInfo.GetMotorCommonAddr(); |
| | |
| | | int m_nPixelConv; // pixel 단위 좌표 |
| | | int m_nPixelScan; // pixel 단위 좌표 |
| | | |
| | | short m_nPixelSize; // 결함크기 ---------------------------------PS |
| | | /* < KMH 20220707 : #4230 MOD Start > */ |
| | | // 범위 벗어나서 음수로 표기되면 D_Col Fail |
| | | //short m_nPixelSize; // 결함크기 ---------------------------------PS |
| | | int m_nPixelSize; // 결함크기 ---------------------------------PS |
| | | /* < KMH 20220707 : #4230 MOD End > */ |
| | | short/*SERVER_DefectType*/ m_DefectType; // 결함 타입 ---------------------------------DT |
| | | short/*SERVER_DefectSubType*/ m_DefectSubType; // 결함의 판정상태. |
| | | short/*SERVER_DefectBDType*/ m_DefectBDType; // 결함 타입 - Bright, Dark, Both |
| | |
| | | short m_nStackStepCount; // Stack 수 |
| | | short m_nStackColorIdx; // Color를 선택하는 인덱스. |
| | | //CString m_strStackStep[CFDEFECT_STACKCOUNT]; // Stack Step. |
| | | char m_strStackFirst[60]; // Stack Step. //201221 CJH - 최대 사이즈 60bytes |
| | | /* < KMH 20220712 : #4230 MOD Start > */ |
| | | // char m_strStackFirst[60]; // Stack Step. //201221 CJH - 최대 사이즈 60bytes |
| | | char m_strStackFirst[400]; // Stack Step. // 400 bytes 확장요청 : SDC 채승석P |
| | | /* < KMH 20220712 : #4230 MOD End > */ |
| | | char m_strUnitID[16]; // 유닛아이디 |
| | | |
| | | int m_ClassificationType; // enum ClassificationType { ClassType_None= 0, ClassType_PI_Over= 1, ClassType_PI_Under= 2, ClassType_TFE_Circle= 3, ClassType_Bubble, ClassType_Scratch, ClassType_Particle}; Classification Type, PI나 TFE등 추가 분류 알고리즘 적용 결과. |
| | |
| | | SetLastPointCheck(FALSE); |
| | | |
| | | SetReviewComplete(FALSE); |
| | | SetUploadResultFailCount(0); |
| | | //SetUploadResultFailCount(0); |
| | | |
| | | bFileFind = FALSE; |
| | | |
| | |
| | | m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::ReviewEnd] Send Review End Ack!")); |
| | | } |
| | | |
| | | SetUploadResultFailCount(0); |
| | | |
| | | CGlassResult* pGlassResult = m_pSP2P->ISP2P_GetCurrentGlassResult(); |
| | | if (pGlassResult == NULL) return; |
| | | |
| | |
| | | if (pTransferData->strProdType != m_pSP2P->ISP2P_System_GetNetworkInfo()->m_strZeroReviewAlarmExcept) |
| | | { |
| | | m_nStackZeroReviewCondition++; |
| | | m_pSP2P->ISP2P_DisplayMessage(_T("Zero Review Condition ProdType = %s, ConditionStack = %d, AlarmExcept = %s, AlarmCondition = %d"), pTransferData->strProdType, m_nStackZeroReviewCondition, m_pSP2P->ISP2P_System_GetNetworkInfo()->m_strZeroReviewAlarmExcept, m_pSP2P->ISP2P_System_GetNetworkInfo()->m_nZeroReviewAlarm); |
| | | if (m_nStackZeroReviewCondition >= m_pSP2P->ISP2P_System_GetNetworkInfo()->m_nZeroReviewAlarm) |
| | | { |
| | | m_pSP2P->ISP2P_DisplayMessage(_T("Zero Review Alarm! %d ea Glass Is Zero Review!"), m_nStackZeroReviewCondition); |
| | |
| | | if (UploadResult == FALSE) |
| | | { |
| | | UploadResultFailCount++; |
| | | if (UploadResultFailCount >= 2) |
| | | if (UploadResultFailCount >= 3) |
| | | { |
| | | m_pSP2P->ISP2P_DisplayMessage(_T("ResultFile Upload Fail!")); |
| | | SendSignalToSignalControl(PCControlSendSignalIndex_State, PCControlSend_ResultData_Upload_Fail, 1000); |
| | | SetUploadResultFailCount(-1); |
| | | } |
| | | SetUploadResultFailCount(UploadResultFailCount); |
| | | else |
| | | { |
| | | SetUploadResultFailCount(UploadResultFailCount); |
| | | } |
| | | } |
| | | } |
| | | |