From 73f77c34a0d680de9e562a7e572764ffc746fbac Mon Sep 17 00:00:00 2001 From: LYW <leeyeanwoo@diteam.co.kr> Date: 화, 26 7월 2022 17:01:25 +0900 Subject: [PATCH] Ongoing90 #4220 CF AOI Review 알람 추가 --- FTPUploader/FTPUploader/FTPUploaderDlg.cpp | 49 ++++++- ReviewHistory/ReveiwHistory/DitGlassRawStruct.h | 11 + ReviewSystem/CHMotorControls/MotorControl.cpp | 42 +++--- FTPUploader/FTPUploader/resource.h | 2 DitGlassRawMessenger/DitGlassRawMessenger/RawResultReader.cpp | 8 ReviewSystem/ReviewSystem/SequenceProcessor_CPJT.cpp | 12 + FTPUploader/FTPUploader/FTPThreadPool.cpp | 221 +++++++++++++++++-------------- DitGlassRawMessenger/Extern/DitGlassRawStruct.h | 11 + ReviewSystem/ReviewSystem/DitGlassRawStruct.h | 11 + FTPUploader/FTPUploader/FTPThreadPool.h | 3 FTPUploader/FTPUploader/FTPUploaderDlg.h | 12 + FTPUploader/FTPUploader/FTPUploader.rc | 5 ReviewHistory/bin/ReviewHistroy.exe | 0 DitGlassRawMessenger/DitGlassRawMessenger/GlassRawCPJT.cpp | 25 +- 14 files changed, 254 insertions(+), 158 deletions(-) diff --git a/DitGlassRawMessenger/DitGlassRawMessenger/GlassRawCPJT.cpp b/DitGlassRawMessenger/DitGlassRawMessenger/GlassRawCPJT.cpp index 10f02ce..ef25ec9 100644 --- a/DitGlassRawMessenger/DitGlassRawMessenger/GlassRawCPJT.cpp +++ b/DitGlassRawMessenger/DitGlassRawMessenger/GlassRawCPJT.cpp @@ -373,7 +373,14 @@ //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(); @@ -383,15 +390,6 @@ 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; - - @@ -1309,10 +1307,13 @@ } // 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 { diff --git a/DitGlassRawMessenger/DitGlassRawMessenger/RawResultReader.cpp b/DitGlassRawMessenger/DitGlassRawMessenger/RawResultReader.cpp index e9bd828..290b0fd 100644 --- a/DitGlassRawMessenger/DitGlassRawMessenger/RawResultReader.cpp +++ b/DitGlassRawMessenger/DitGlassRawMessenger/RawResultReader.cpp @@ -182,8 +182,12 @@ 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); // 미사용 diff --git a/DitGlassRawMessenger/Extern/DitGlassRawStruct.h b/DitGlassRawMessenger/Extern/DitGlassRawStruct.h index 58cf38c..d616fe4 100644 --- a/DitGlassRawMessenger/Extern/DitGlassRawStruct.h +++ b/DitGlassRawMessenger/Extern/DitGlassRawStruct.h @@ -423,7 +423,11 @@ 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 @@ -503,7 +507,10 @@ 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등 추가 분류 알고리즘 적용 결과. diff --git a/FTPUploader/FTPUploader/FTPThreadPool.cpp b/FTPUploader/FTPUploader/FTPThreadPool.cpp index 3da991c..7176af1 100644 --- a/FTPUploader/FTPUploader/FTPThreadPool.cpp +++ b/FTPUploader/FTPUploader/FTPThreadPool.cpp @@ -28,7 +28,7 @@ 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"); @@ -216,7 +216,7 @@ DisplayLogMessage(strMessage); } - // ACK를 해야하나? + // ACK占쏙옙 占쌔억옙占싹놂옙? Process_UploadAck(nUploadResult, uploadParam); return TRUE; @@ -256,7 +256,7 @@ DisplayLogMessage(strMessage); } - // ACK를 해야하나? + // ACK占쏙옙 占쌔억옙占싹놂옙? Process_DownloadAck(TRUE, downloadParam); return TRUE; @@ -268,7 +268,7 @@ 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; @@ -286,7 +286,7 @@ m_nConnectionTimeout2 = nTimeout2; m_strDefaultFolderPath2 = strHomePath2; - //201218 CJH - Download용 IP 추가 + //201218 CJH - Download占쏙옙 IP 占쌩곤옙 m_strIP3 = strIP3; m_strID3 = strUserID3; m_strPassword3 = strPassword3; @@ -295,6 +295,7 @@ m_strDefaultFolderPath3 = strHomePath3; m_bWSIChk = bWSIChk; + m_bBDIStackDown = bBDIStackDown; if(m_strDefaultFolderPath.Right(1) != _T("\\")) { @@ -311,11 +312,11 @@ { 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"); @@ -353,7 +354,7 @@ } 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 { @@ -451,7 +452,7 @@ return bReturn; } - // 마지막 폴더로 이동이 실패 한다면 For문 돌면서 폴더를 생성한다. + // 占쏙옙占쏙옙占쏙옙 占쏙옙占쏙옙占쏙옙 占싱듸옙占쏙옙 占쏙옙占쏙옙 占싼다몌옙 For占쏙옙 占쏙옙占썽서 占쏙옙占쏙옙占쏙옙 占쏙옙占쏙옙占싼댐옙. CString strFinalPath = strPath; int nStartIdx = 1; while(TRUE) @@ -487,11 +488,11 @@ CString strMessage = _T(""); BOOL bUploadResult = FALSE; - // 최종 서버 경로 만들기 + // 占쏙옙占쏙옙 占쏙옙占쏙옙 占쏙옙占� 占쏙옙占쏙옙占� CString strServer_FinalPath = m_strDefaultFolderPath + Param.m_strServer_SignalFolderName; strServer_FinalPath += _T("/"); - // 서버 경로 변경 없으면 만들어서 변경 + // 占쏙옙占쏙옙 占쏙옙占� 占쏙옙占쏙옙 占쏙옙占쏙옙占쏙옙 占쏙옙占쏙옙底� 占쏙옙占쏙옙 if(m_bSharedFolder) { CString strCreatePath; @@ -503,21 +504,21 @@ 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); @@ -527,10 +528,10 @@ bUploadResult = m_pConnection->PutFile(strLocalSignalPath, strServer_FinalPath); } - // 로컬 시그널 파일 삭제 + // 占쏙옙占쏙옙 占시그놂옙 占쏙옙占쏙옙 占쏙옙占쏙옙 DeleteFile(strLocalSignalPath); - // 결과 로그 출력 + // 占쏙옙占� 占싸깍옙 占쏙옙占� DisplayResultMessage(bUploadResult, strServer_FinalPath, strLocalSignalPath); } @@ -548,9 +549,9 @@ 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) @@ -566,14 +567,14 @@ { 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; @@ -594,7 +595,7 @@ { 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); } @@ -607,7 +608,7 @@ } - //Raw 파일 경로 추가 + //Raw 占쏙옙占쏙옙 占쏙옙占� 占쌩곤옙 CString strServerSubRawFileFullPathName=NULL; if(Param.m_nDataType == FTPDataType_Raw) { @@ -618,12 +619,12 @@ - // 로컬 풀 경로명 만들기 + // 占쏙옙占쏙옙 풀 占쏙옙罐占� 占쏙옙占쏙옙占� 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); @@ -635,13 +636,13 @@ 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) @@ -653,13 +654,33 @@ { 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); } @@ -674,19 +695,19 @@ 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); @@ -698,13 +719,13 @@ 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(); @@ -725,7 +746,7 @@ int a = 0; } - // 결과 로그 출력 + // 占쏙옙占� 占싸깍옙 占쏙옙占� DisplayResultMessage(bUploadResult, strServer_WSIFullPathName, strWSILocal_FullPathName); } finder.Close(); @@ -747,14 +768,14 @@ 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); @@ -768,10 +789,10 @@ 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; @@ -783,14 +804,14 @@ 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 + "/" ; @@ -818,14 +839,14 @@ 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); } @@ -847,16 +868,16 @@ 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(); @@ -888,56 +909,56 @@ 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; diff --git a/FTPUploader/FTPUploader/FTPThreadPool.h b/FTPUploader/FTPUploader/FTPThreadPool.h index 22717f7..1a22348 100644 --- a/FTPUploader/FTPUploader/FTPThreadPool.h +++ b/FTPUploader/FTPUploader/FTPThreadPool.h @@ -45,7 +45,7 @@ // 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 @@ -150,5 +150,6 @@ BOOL m_bSharedFolder; BOOL m_bWSIChk; + BOOL m_bBDIStackDown; }; diff --git a/FTPUploader/FTPUploader/FTPUploader.rc b/FTPUploader/FTPUploader/FTPUploader.rc index 4fdf2f5..52a1006 100644 --- a/FTPUploader/FTPUploader/FTPUploader.rc +++ b/FTPUploader/FTPUploader/FTPUploader.rc @@ -112,7 +112,7 @@ 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 @@ -147,7 +147,8 @@ 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 diff --git a/FTPUploader/FTPUploader/FTPUploaderDlg.cpp b/FTPUploader/FTPUploader/FTPUploaderDlg.cpp index 2395dbf..6e4f440 100644 --- a/FTPUploader/FTPUploader/FTPUploaderDlg.cpp +++ b/FTPUploader/FTPUploader/FTPUploaderDlg.cpp @@ -63,6 +63,7 @@ , m_strHomePath2(_T("/")) , m_nPort2(21) , m_bPassiveMode(FALSE) + , m_bCheckBDIStackDown(FALSE) { m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME); @@ -107,6 +108,7 @@ 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) @@ -131,6 +133,9 @@ 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() @@ -195,7 +200,7 @@ 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(); } @@ -204,7 +209,7 @@ 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(); } @@ -629,8 +634,8 @@ 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"); @@ -988,6 +993,15 @@ 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; } @@ -1123,6 +1137,10 @@ 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(""); @@ -1138,8 +1156,8 @@ 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) { @@ -1489,4 +1507,21 @@ // TODO: 여기에 특수화된 코드를 추가 및/또는 기본 클래스를 호출합니다. return __super::DestroyWindow(); -} \ No newline at end of file +} + +void CFTPUploaderDlg::OnBnClickedCheckBdiStackDownload() +{ + // TODO: 여기에 컨트롤 알림 처리기 코드를 추가합니다. +} + + +void CFTPUploaderDlg::OnBnClickedCheckWsi() +{ + // TODO: 여기에 컨트롤 알림 처리기 코드를 추가합니다. +} + + +void CFTPUploaderDlg::OnBnClickedCheckPassiveMode() +{ + // TODO: 여기에 컨트롤 알림 처리기 코드를 추가합니다. +} diff --git a/FTPUploader/FTPUploader/FTPUploaderDlg.h b/FTPUploader/FTPUploader/FTPUploaderDlg.h index b6cbc68..b221e40 100644 --- a/FTPUploader/FTPUploader/FTPUploaderDlg.h +++ b/FTPUploader/FTPUploader/FTPUploaderDlg.h @@ -26,12 +26,12 @@ #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") @@ -105,6 +105,7 @@ BOOL m_bPassiveMode; BOOL m_bWSIChk; + BOOL m_bCheckBDIStackDown; CIPAddressCtrl m_ctlIPAddress2; CString m_strID2; @@ -113,7 +114,7 @@ CString m_strHomePath2; int m_nPort2; - //201218 CJH - IP 추가 + //201218 CJH - IP 占쌩곤옙 CIPAddressCtrl m_ctlIPAddress3; CString m_strID3; CString m_strPW3; @@ -166,4 +167,7 @@ afx_msg void OnBnClickedButtonUploadList(); virtual BOOL DestroyWindow(); CButton m_chkWSI; + afx_msg void OnBnClickedCheckBdiStackDownload(); + afx_msg void OnBnClickedCheckWsi(); + afx_msg void OnBnClickedCheckPassiveMode(); }; \ No newline at end of file diff --git a/FTPUploader/FTPUploader/resource.h b/FTPUploader/FTPUploader/resource.h index 458e89a..dcb2763 100644 --- a/FTPUploader/FTPUploader/resource.h +++ b/FTPUploader/FTPUploader/resource.h @@ -19,6 +19,8 @@ #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 diff --git a/ReviewHistory/ReveiwHistory/DitGlassRawStruct.h b/ReviewHistory/ReveiwHistory/DitGlassRawStruct.h index 58cf38c..d616fe4 100644 --- a/ReviewHistory/ReveiwHistory/DitGlassRawStruct.h +++ b/ReviewHistory/ReveiwHistory/DitGlassRawStruct.h @@ -423,7 +423,11 @@ 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 @@ -503,7 +507,10 @@ 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등 추가 분류 알고리즘 적용 결과. diff --git a/ReviewHistory/bin/ReviewHistroy.exe b/ReviewHistory/bin/ReviewHistroy.exe index 299dc8a..8176eb3 100644 --- a/ReviewHistory/bin/ReviewHistroy.exe +++ b/ReviewHistory/bin/ReviewHistroy.exe Binary files differ diff --git a/ReviewSystem/CHMotorControls/MotorControl.cpp b/ReviewSystem/CHMotorControls/MotorControl.cpp index 3be3b86..ee07ab9 100644 --- a/ReviewSystem/CHMotorControls/MotorControl.cpp +++ b/ReviewSystem/CHMotorControls/MotorControl.cpp @@ -103,27 +103,27 @@ 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(); diff --git a/ReviewSystem/ReviewSystem/DitGlassRawStruct.h b/ReviewSystem/ReviewSystem/DitGlassRawStruct.h index 58cf38c..d616fe4 100644 --- a/ReviewSystem/ReviewSystem/DitGlassRawStruct.h +++ b/ReviewSystem/ReviewSystem/DitGlassRawStruct.h @@ -423,7 +423,11 @@ 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 @@ -503,7 +507,10 @@ 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등 추가 분류 알고리즘 적용 결과. diff --git a/ReviewSystem/ReviewSystem/SequenceProcessor_CPJT.cpp b/ReviewSystem/ReviewSystem/SequenceProcessor_CPJT.cpp index 267abef..602b2fc 100644 --- a/ReviewSystem/ReviewSystem/SequenceProcessor_CPJT.cpp +++ b/ReviewSystem/ReviewSystem/SequenceProcessor_CPJT.cpp @@ -945,7 +945,7 @@ SetLastPointCheck(FALSE); SetReviewComplete(FALSE); - SetUploadResultFailCount(0); + //SetUploadResultFailCount(0); bFileFind = FALSE; @@ -1707,6 +1707,8 @@ m_pSP2P->ISP2P_DisplayMessage(_T("[SequenceProcessor::ReviewEnd] Send Review End Ack!")); } + SetUploadResultFailCount(0); + CGlassResult* pGlassResult = m_pSP2P->ISP2P_GetCurrentGlassResult(); if (pGlassResult == NULL) return; @@ -1807,6 +1809,7 @@ 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); @@ -8392,13 +8395,16 @@ 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); + } } } -- Gitblit v1.9.3