Ongoing90 #3361 CF AOI Review 전설비 Align Cam 비정상 연결 시 팝업 기능 추가
1) Align Cam, Review Cam 비정상 연결 시 팝업 기능 추가
2) 팝업 후 프로그램 종료 기능 추가
3) #3360_CF AOI QD Review WSI XY MotorMoving Error 알람 발생 원인 분석 및 조치
#3359_CF AOI Review REVIEW_LOADING_COMPLETE_TIMEOVER 알람 발생 원인 분석
트러블 조치 포함
| | |
| | | |
| | | BOOL CGlassRawBase::WriteBinFile( CgrmGlassRawData* pData ) |
| | | { |
| | | AKLOG("WriteBinFile Start"); |
| | | CString strFileName; |
| | | strFileName.Format("%s\\%s", pData->GetGlassData()->m_strPath, pData->GetGlassData()->m_strFileName); |
| | | FILE* pf = fopen(strFileName.GetBuffer(0), "wb"); |
| | |
| | | } |
| | | else |
| | | { |
| | | AKLOG("WriteBinFile Fail"); |
| | | return FALSE; |
| | | } |
| | | |
| | | AKLOG("WriteBinFile Finish"); |
| | | return TRUE; |
| | | } |
| | | |
| | |
| | | } |
| | | strcpy(pData->GetGlassData()->m_strPath, LOCAL_AOIRAWBIN_PATH); |
| | | |
| | | |
| | | if(!WriteBinFile(pData)) |
| | | return FALSE; |
| | | |
| | | |
| | | if (1) ReadMuraFile(pData); |
| | | |
| | | |
| | | if (WriteAOIFile(pData) == FALSE) |
| | | return FALSE; |
| | |
| | | |
| | | BOOL CGlassRawCPJT::MakeAOIFile( CgrmGlassRawData* pData ) |
| | | { |
| | | AKLOG("MakeAOIFile Start"); |
| | | m_nWriteRawDefectIdx = 1; |
| | | |
| | | _grmGlassData* pGlass = pData->GetGlassData(); |
| | |
| | | |
| | | strValue = "ITEM PANEL MODULETYPE MODULEID PROCESSID PRODUCTID STEPID PROD_TYPE BATCHID H_PANELID E_PANELID P_PANELID OPERID COMP_COUNT PPID GRADE CODE R_GRADE MAP_IMAGE L_TIME U_TIME S_TIME E_TIME T_DEFECT TR PR TB TW RB RW T_STACK MAX_AVG_GRAY MAX_PORTION OK_CELL RJ_CELL RW_CELL NR_CELL CSTID SLOT_NO JOB_END TD_DEFECT SD_DEFECT PD_DEFECT SP_DEFECT PAD_GATE PAD_DATA M_DEFECT C_DEFECT BR_DEFECT IMG_COUNT RECIPE SHRINK RAW_CUT"; //53ea |
| | | strLine += strValue; strLine += "\n"; |
| | | strValue = "ITEM SUBPANEL SUBPANELID COORD_X COORD_Y SIZE_X SIZE_Y GATELINE DATALINE GRADE CODE R_GRADE T_DEFECT TD_DEFECT SD_DEFECT PD_DEFECT SP_DEFECT PAD_GATE PAD_DATA M_DEFECT C_DEFECT PRO_IMAGE AVG_GRAY PORTION"; //24ea result 0404nwh 삭제 : S_DEFECT CRACK P_SHIFT |
| | | strValue = "ITEM SUBPANEL SUBPANELID COORD_X COORD_Y SIZE_X SIZE_Y GATELINE DATALINE GRADE CODE R_GRADE T_DEFECT TD_DEFECT SD_DEFECT PD_DEFECT SP_DEFECT PAD_GATE PAD_DATA M_DEFECT C_DEFECT PRO_IMAGE AVG_GRAY_0 PORTION_0 AVG_GRAY_1 PORTION_1 AVG_GRAY_2 PORTION_2 AVG_GRAY_3 PORTION_3"; //30ea 21-05-12 Mura Data 추가 |
| | | strLine += strValue; strLine += "\n"; |
| | | //210405 |
| | | //ITEM DEFECT ID DEF_NO COORD_X COORD_Y GATELINE DATALINE SIZE_S SIZE_W SIZE_L SIZE_H GRADE CODE STACK_FLAG STACK_COUNT STACK_STEP IMAGE_FILE DSC_CODE VC_CODE DCR_CODE DEFECT_SIZE REPEAT_DEFECT WSI_HEIGHT CS_HEIGHT C_GRADE GRAY_MIN GRAY_MAX GRAY_AVG GRAY_DEF WSI_IMAGE USE_CCDIMAGE SCAN_NUM CAM_POSITION CCD_NO R_GRAY_MIN R_GRAY_MAX R_GRAY_AVG SCAN_AI REVIEW_AI INS_MODE INS_CHANNEL COMPACTNESS THICKNESS MAJOR MINOR WSI_TYPE DEFECT_TYPE SHRINK |
| | |
| | | // 31 6 T_STACK // Panel 정보 08 SD+SP 수 입력 |
| | | SPRINTRAW(12, "%d", pGlassData->m_nDefectNumStackSD + pGlassData->m_nDefectNumStackSP); |
| | | //32 6 BMDF // Panel 정보 09 -> 변경 MAX_AVG_GRAY 04/12 nwh |
| | | SPRINTRAW(12, "%5.4f", pGlassData->m_fMaxAvgGray); |
| | | if (strlen(pGlassData->m_strMaxAvgGray) == 0) |
| | | { |
| | | SPRINTRAW(12, "*"); |
| | | } |
| | | else |
| | | { |
| | | SPRINTRAW(12, "%s", pGlassData->m_strMaxAvgGray); |
| | | } |
| | | // 33 6 CJ // Panel 정보 10 -> 변경 MAX_PORTION 04/12 nwh |
| | | SPRINTRAW(12, "%5.6f", pGlassData->m_fMaxPortion); |
| | | if (strlen(pGlassData->m_strMaxPortion) == 0) |
| | | { |
| | | SPRINTRAW(12, "*"); |
| | | } |
| | | else |
| | | { |
| | | SPRINTRAW(12, "%s", pGlassData->m_strMaxPortion); |
| | | } |
| | | // 34 6 OK_CELL // OK Cell Count |
| | | SPRINTRAW(12, "*"); |
| | | // 35 6 RJ_CELL // RJ Cell Count |
| | |
| | | SPRINTRAW(12,"*"); |
| | | } |
| | | |
| | | // 23 6 CRACK -> 23 6 AVG_GRAY 변경 |
| | | SPRINTRAW(12, "%5.4f", pCellData->m_fAvgGray); |
| | | // 23 12 AVG_GRAY_0 |
| | | if (strlen(pCellData->m_strAvgGray_0)) |
| | | { |
| | | SPRINTRAW(12, "%s", pCellData->m_strAvgGray_0); |
| | | } |
| | | else |
| | | { |
| | | SPRINTRAW(12, "*"); |
| | | } |
| | | |
| | | // 24 6 P_SHIFT ->24 6 PORTION |
| | | SPRINTRAW(12, "%5.6f", pCellData->m_fPortion); |
| | | // 24 12 PORTION_0 |
| | | if (strlen(pCellData->m_strPortion_0)) |
| | | { |
| | | SPRINTRAW(12, "%s", pCellData->m_strPortion_0); |
| | | } |
| | | else |
| | | { |
| | | SPRINTRAW(12, "*"); |
| | | } |
| | | |
| | | // 25 12 AVG_GRAY_1 |
| | | if (strlen(pCellData->m_strAvgGray_1)) |
| | | { |
| | | SPRINTRAW(12, "%s", pCellData->m_strAvgGray_1); |
| | | } |
| | | else |
| | | { |
| | | SPRINTRAW(12, "*"); |
| | | } |
| | | // 26 12 PORTION_1 |
| | | if (strlen(pCellData->m_strPortion_1)) |
| | | { |
| | | SPRINTRAW(12, "%s", pCellData->m_strPortion_1); |
| | | } |
| | | else |
| | | { |
| | | SPRINTRAW(12, "*"); |
| | | } |
| | | // 27 12 AVG_GRAY_2 |
| | | if (strlen(pCellData->m_strAvgGray_2)) |
| | | { |
| | | SPRINTRAW(12, "%s", pCellData->m_strAvgGray_2); |
| | | } |
| | | else |
| | | { |
| | | SPRINTRAW(12, "*"); |
| | | } |
| | | // 28 12 PORTION_2 |
| | | if (strlen(pCellData->m_strPortion_2)) |
| | | { |
| | | SPRINTRAW(12, "%s", pCellData->m_strPortion_2); |
| | | } |
| | | else |
| | | { |
| | | SPRINTRAW(12, "*"); |
| | | } |
| | | // 29 12 AVG_GRAY_3 |
| | | if (strlen(pCellData->m_strAvgGray_3)) |
| | | { |
| | | SPRINTRAW(12, "%s", pCellData->m_strAvgGray_3); |
| | | } |
| | | else |
| | | { |
| | | SPRINTRAW(12, "*"); |
| | | } |
| | | // 30 12 PORTION_3 |
| | | if (strlen(pCellData->m_strPortion_3)) |
| | | { |
| | | SPRINTRAW(12, "%s", pCellData->m_strPortion_3); |
| | | } |
| | | else |
| | | { |
| | | SPRINTRAW(12, "*"); |
| | | } |
| | | |
| | | SPRINTRAWEND; //중요!!! 젤 마지막에 꼭 있어야함!!!(삭제금지) [김태현2020/9/23] |
| | | } |
| | |
| | | char* pReadPoint = NULL; |
| | | char *pStr; |
| | | |
| | | CString stranelData = "DATA PANEL"; |
| | | CString strSubPanelData = "DATA SUBPANEL"; |
| | | CString strMaxAvgGray, strMaxPortion; |
| | | |
| | | while (!feof(pf)) |
| | | { |
| | | pStr = fgets(buffer, 1024, pf); |
| | | if (!strncmp(buffer, "DATA,", 5)) continue; |
| | | if (strlen(buffer) <= 0 || pStr == NULL) |
| | | break; |
| | | |
| | | //else if (!strncmp(buffer, "DATA\tSUBPANEL\t", 14))// 탭 파싱 |
| | | else if (!strncmp(buffer, "DATA SUBPANEL ", 14))// 띄어쓰기 파싱 |
| | | if (!strncmp(buffer, stranelData, strlen(stranelData)))// 띄어쓰기 파싱 |
| | | { |
| | | CakParser paser; |
| | | if (strlen(buffer) <= 0) continue; |
| | | paser.process(buffer); |
| | | paser.process(buffer, " "); |
| | | int nTokNum = paser.getTokNum(); |
| | | if (nTokNum < 1) continue; |
| | | if (nTokNum < 42) continue; |
| | | strMaxAvgGray = paser.getTokStr(41); |
| | | strMaxPortion = paser.getTokStr(42); |
| | | } |
| | | |
| | | if (nTokNum > 0) MacroSubPanel.PRO_IMAGE = paser.getTokStr(20); |
| | | if (nTokNum > 1) MacroSubPanel.AVG_GRAY = atof(paser.getTokStr(21)); |
| | | if (nTokNum > 2) MacroSubPanel.PORTION = atof(paser.getTokStr(22)); |
| | | |
| | | if (!strncmp(buffer, strSubPanelData, strlen(strSubPanelData)))// 띄어쓰기 파싱 |
| | | { |
| | | CakParser paser; |
| | | if (strlen(buffer) <= 0) continue; |
| | | paser.process(buffer, " "); |
| | | int nTokNum = paser.getTokNum(); |
| | | if (nTokNum < 31) continue; |
| | | MacroSubPanel.PRO_IMAGE = paser.getTokStr(20); |
| | | MacroSubPanel.AVG_GRAY_0 = paser.getTokStr(21); |
| | | MacroSubPanel.PORTION_0 = paser.getTokStr(22); |
| | | MacroSubPanel.AVG_GRAY_1 = paser.getTokStr(24); |
| | | MacroSubPanel.PORTION_1 = paser.getTokStr(25); |
| | | MacroSubPanel.AVG_GRAY_2 = paser.getTokStr(27); |
| | | MacroSubPanel.PORTION_2 = paser.getTokStr(28); |
| | | MacroSubPanel.AVG_GRAY_3 = paser.getTokStr(30); |
| | | MacroSubPanel.PORTION_3 = paser.getTokStr(31); |
| | | |
| | | vecMacroSubPanel.push_back(MacroSubPanel); |
| | | } |
| | |
| | | { |
| | | pGrmMura= pShared->GetCellData(i); |
| | | |
| | | //pGrmMura->clear(); |
| | | |
| | | strcpy(pGrmMura->m_strProImage, m_vecMacroSubPanel[i].PRO_IMAGE); |
| | | pGrmMura->m_fAvgGray = m_vecMacroSubPanel[i].AVG_GRAY; |
| | | pGrmMura->m_fPortion = m_vecMacroSubPanel[i].PORTION; |
| | | |
| | | strcpy(pGrmMura->m_strProImage, m_vecMacroSubPanel[i].PRO_IMAGE.GetBuffer(0)); |
| | | strcpy(pGrmMura->m_strAvgGray_0, m_vecMacroSubPanel[i].AVG_GRAY_0.GetBuffer(0)); |
| | | strcpy(pGrmMura->m_strPortion_0, m_vecMacroSubPanel[i].PORTION_0.GetBuffer(0)); |
| | | strcpy(pGrmMura->m_strAvgGray_1, m_vecMacroSubPanel[i].AVG_GRAY_1.GetBuffer(0)); |
| | | strcpy(pGrmMura->m_strPortion_1, m_vecMacroSubPanel[i].PORTION_1.GetBuffer(0)); |
| | | strcpy(pGrmMura->m_strAvgGray_2, m_vecMacroSubPanel[i].AVG_GRAY_2.GetBuffer(0)); |
| | | strcpy(pGrmMura->m_strPortion_2, m_vecMacroSubPanel[i].PORTION_2.GetBuffer(0)); |
| | | strcpy(pGrmMura->m_strAvgGray_3, m_vecMacroSubPanel[i].AVG_GRAY_3.GetBuffer(0)); |
| | | strcpy(pGrmMura->m_strPortion_3, m_vecMacroSubPanel[i].PORTION_3.GetBuffer(0)); |
| | | } |
| | | float Max_AVG_GRAY = m_vecMacroSubPanel[0].AVG_GRAY; |
| | | float Max_PORTION = m_vecMacroSubPanel[0].PORTION; |
| | | |
| | | for (int i = 1; i < m_vecMacroSubPanel.size(); ++i) |
| | | { |
| | | Max_AVG_GRAY = max(Max_AVG_GRAY, m_vecMacroSubPanel[i].AVG_GRAY); //큰 값을 다시 largest에 대입 |
| | | Max_PORTION = max(Max_PORTION, m_vecMacroSubPanel[i].PORTION); |
| | | } |
| | | pShared->GetGlassData()->m_fMaxAvgGray = Max_AVG_GRAY; |
| | | pShared->GetGlassData()->m_fMaxPortion = Max_PORTION; |
| | | strcpy(pShared->GetGlassData()->m_strMaxAvgGray, strMaxAvgGray.GetBuffer(0)); |
| | | strcpy(pShared->GetGlassData()->m_strMaxPortion, strMaxPortion.GetBuffer(0)); |
| | | |
| | | m_bReadSuccess = TRUE; |
| | | return TRUE; |
| | |
| | | struct _MacroSubPanel |
| | | { |
| | | CString PRO_IMAGE; |
| | | float AVG_GRAY; |
| | | float PORTION; |
| | | CString AVG_GRAY_0; // 0 Scan 0 Model |
| | | CString PORTION_0; |
| | | CString AVG_GRAY_1; // 0 Scan 1 Model |
| | | CString PORTION_1; |
| | | CString AVG_GRAY_2; // 1 Scan 0 Model |
| | | CString PORTION_2; |
| | | CString AVG_GRAY_3; // 1 Scan 1 Model |
| | | CString PORTION_3; |
| | | }; |
| | | |
| | | class CMacroResultFile |
| | |
| | | char m_strCount2[2]; |
| | | |
| | | //Mura Data 0412 nwh |
| | | float m_fMaxAvgGray; |
| | | float m_fMaxPortion; |
| | | char m_strMaxAvgGray[12]; |
| | | char m_strMaxPortion[12]; |
| | | |
| | | |
| | | //1226NWH |
| | |
| | | |
| | | //Mura Data nwh 0404 |
| | | char m_strProImage[32]; |
| | | float m_fAvgGray; |
| | | float m_fPortion; |
| | | |
| | | |
| | | |
| | | char m_strAvgGray_0[12]; |
| | | char m_strPortion_0[12]; |
| | | char m_strAvgGray_1[12]; |
| | | char m_strPortion_1[12]; |
| | | char m_strAvgGray_2[12]; |
| | | char m_strPortion_2[12]; |
| | | char m_strAvgGray_3[12]; |
| | | char m_strPortion_3[12]; |
| | | |
| | | int m_nDefectNumJudgeOKWhite; |
| | | int m_nDefectNumJudgeOKBlack; |
| | |
| | | #define _REVIEW_SERVER_SYSTEM_SETTING_FILE_PATH_ _T("C:\\DIT_Review\\ReviewServerConfig\\SystemSetting.cfg") |
| | | #define _REVIEW_RECIPE_BACKUP_PATH_CPJT _T("\\\\126.100.100.10\\d\\DIT Back up\\DIT Review\\Recipe") |
| | | #define _REVIEW_SERVER_SYSTEM_SETTING_BACKUP_PATH_CPJT _T("\\\\126.100.100.10\\d\\DIT Back up\\DIT Review\\ReviewServerConfig") |
| | | //#define _REVIEW_RECIPE_BACKUP_PATH_CPJT _T("E:\\DIT Back up\\DIT Review\\Recipe") |
| | | //#define _REVIEW_SERVER_SYSTEM_SETTING_BACKUP_PATH_CPJT _T("E:\\DIT Back up\\DIT Review\\ReviewServerConfig") |
| | | |
| | | #define NETIP_A2E_AOI_SERVER _T("126.100.100.1") |
| | | #define NETIP_A2E_REVIEW_SYSTEM _T("126.100.100.210") |
| | |
| | | |
| | | if (!pCameraControl->Connect(*it)) |
| | | { |
| | | //#3361_ LYW CF AOI Review 전설비 Align Cam 비정상 연결 시 팝업 기능 추가 START |
| | | if (it->GetLibraryType() == CAMERA_LIBRARY_PYLON) |
| | | { |
| | | CString strMessage; |
| | | strMessage.Format(_T("Align카메라 연결 실패 idx = %d"), nCamIndex); |
| | | if (IDOK == AfxMessageBox(strMessage, MB_OK | MB_ICONQUESTION)) |
| | | { |
| | | g_pLog->DisplayMessage(_T("Align Camera Connet Fail! Exit Review System")); |
| | | //exit(1); |
| | | return FALSE; |
| | | } |
| | | |
| | | } |
| | | else if(it->GetLibraryType() == CameraLibrary_Sapera) |
| | | { |
| | | CString strMessage; |
| | | strMessage.Format(_T("Review카메라 연결 실패 idx = %d"), nCamIndex); |
| | | if (IDOK == AfxMessageBox(strMessage, MB_OK | MB_ICONQUESTION)) |
| | | { |
| | | g_pLog->DisplayMessage(_T("Review Camera Connet Fail! Exit Review System")); |
| | | //exit(1); |
| | | return FALSE; |
| | | } |
| | | } |
| | | |
| | | ////#3361_ LYW CF AOI Review 전설비 Align Cam 비정상 연결 시 팝업 기능 추가 END |
| | | delete pCameraControl; |
| | | continue; |
| | | } |
| | |
| | | char m_strCount2[2]; |
| | | |
| | | //Mura Data 0412 nwh |
| | | float m_fMaxAvgGray; |
| | | float m_fMaxPortion; |
| | | char m_strMaxAvgGray[12]; |
| | | char m_strMaxPortion[12]; |
| | | |
| | | |
| | | //1226NWH |
| | |
| | | |
| | | //Mura Data nwh 0404 |
| | | char m_strProImage[32]; |
| | | float m_fAvgGray; |
| | | float m_fPortion; |
| | | |
| | | |
| | | |
| | | char m_strAvgGray_0[12]; |
| | | char m_strPortion_0[12]; |
| | | char m_strAvgGray_1[12]; |
| | | char m_strPortion_1[12]; |
| | | char m_strAvgGray_2[12]; |
| | | char m_strPortion_2[12]; |
| | | char m_strAvgGray_3[12]; |
| | | char m_strPortion_3[12]; |
| | | |
| | | int m_nDefectNumJudgeOKWhite; |
| | | int m_nDefectNumJudgeOKBlack; |
| | |
| | | |
| | | SetTimer(ID_TIMER_SEND_SIGNAL_ALIVE, 100, NULL); |
| | | |
| | | system("net use Y: \\\\126.100.100.1\\d\\DIT_ResultData pw:dit/user:Server/persistent:yes"); |
| | | |
| | | //LYW Align Reconnect |
| | | //system("netsh interface set interface name = \"Align #1\" admin = disable&& netsh interface set interface name = \"Align #1\" admin = enable&& netsh interface set interface name = \"Align #2\" admin = disable&& netsh interface set interface name = \"Align #2\" admin = enable"); |
| | | //Sleep(2000); |
| | | |
| | | // SetTimer(ID_TIMER_WSI_LONGRUN_TEST_TIME, 10000, NULL); |
| | | |
| | | return 0; |
| | |
| | | |
| | | #define AOIRAWBIN_PATH "\\\\126.100.100.1\\d\\DIT_ResultData\\RawBin" |
| | | #define AOIRAWBIN_TEST_PATH "d:\\DIT_ResultData\\RawBin" |
| | | #define AOIRAWBIN_NETWORK_DRIVE_PATH "Y:\\RawBin" |
| | | |
| | | enum CPJT_MeasureMode { CPJT_ModeAuto = 0, CPJT_ModeManual }; |
| | | // [2017:4:18]-[WEZASW] : WSI Module 장착 설비의 경우 PlanType 번호 변경. |
| | |
| | | { |
| | | CTime tmReviewLoading = CTime::GetCurrentTime(); |
| | | CString strWild; |
| | | strWild.Format("%s\\%s_*.bin", strFilePath, strFileName); |
| | | //strWild.Format("%s\\%s_*.bin", strFilePath, strFileName); |
| | | CakFileUtil akFileFinder; |
| | | while (nReTryTime--) |
| | | { |
| | | //#3359_LYW CF AOI Review REVIEW_LOADING_COMPLETE_TIMEOVER 알람 발생 원인 분석 START |
| | | if (nReTryTime%2 == 0) |
| | | { |
| | | strFilePath = AOIRAWBIN_PATH; |
| | | } |
| | | else strFilePath = AOIRAWBIN_NETWORK_DRIVE_PATH; |
| | | |
| | | strWild.Format("%s\\%s_*.bin", strFilePath, strFileName); |
| | | akFileFinder.FindFile(strWild.GetBuffer(0), FALSE); |
| | | //LYW LOG추가 |
| | | g_pLog->DisplayMessage(_T("[GlassLoading][FindRawBinFile] Find Path = %s, RetryCount = %d, ResultCode = [%d]"), strFilePath, 30-nReTryTime, GetLastError()); |
| | | //#3359_LYW CF AOI Review REVIEW_LOADING_COMPLETE_TIMEOVER 알람 발생 원인 분석 END |
| | | VECFINDDATA* pFindData = akFileFinder.getFindData(); |
| | | int nFileNamePos = strlen(akFileFinder.getProcessPath()); |
| | | std::map<LONGLONG, CString> mapSpanFileName; |
| | |
| | | break; |
| | | } |
| | | } |
| | | |
| | | akFileFinder.clear(); |
| | | Sleep(100); |
| | | } |
| | |
| | | strReadData = pTransferData->strRerferData; |
| | | break; |
| | | } |
| | | m_pSP2P->ISP2P_DisplayMessage(_T("[ReadTransferData] Name: %s, Addr: %s, Size: %d, Data: %s"), pInfo->strName, strReadAddress, nReadSize, strReadData); |
| | | //m_pSP2P->ISP2P_DisplayMessage(_T("[ReadTransferData] Name: %s, Addr: %s, Size: %d, Data: %s"), pInfo->strName, strReadAddress, nReadSize, strReadData); //0517 |
| | | } |
| | | } |
| | | |
| | |
| | | strPath = strPath + _T("\\WSI"); |
| | | if(CreateDirectory(strPath,NULL)==FALSE) |
| | | { |
| | | g_pLog->DisplayMessage(_T("[MakeWSIUpLoadDirectory]Directory Create Fail %s "),strPath); |
| | | //LYW LOG추가 |
| | | g_pLog->DisplayMessage(_T("[MakeWSIUpLoadDirectory]Directory Create Fail %s, ERROR CODE = %d "),strPath, GetLastError()); |
| | | } |
| | | |
| | | } |
| | |
| | | //보낼 포인트가 있는지 없는지 체크 |
| | | if (vectorPosX.empty() == TRUE) |
| | | { |
| | | g_pLog->DisplayMessage(_T("[GantryAutoGo] No Exist Send Point "), vectorPosX.size()); |
| | | //3360 LYW_ CF AOI QD Review WSI XY MotorMoving Error 알람 발생 원인 분석 및 조치 START |
| | | g_pLog->DisplayMessage(_T("[GantryAutoGo] No Exist Send Point,TwoGantrySyncMode OFF!"), vectorPosX.size()); |
| | | g_pLog->DisplayMessage(_T("[GantryAutoGo] (%d)Gantry Path Send Fail"), pModuleStatus->GetGantryIndex()); //taek 210128 |
| | | |
| | | pMotorControl->GantrySetTwoGantrySyncModeSend(1); |
| | | //3360 LYW_ CF AOI QD Review WSI XY MotorMoving Error 알람 발생 원인 분석 및 조치 END |
| | | } |
| | | else |
| | | { |
| | |
| | | #define _REVIEW_SERVER_CONFIG_PATH_ _T("C:\\DIT_Review\\ReviewServerConfig") |
| | | #define _REVIEW_SERVER_SYSTEM_SETTING_FILE_PATH_ _T("C:\\DIT_Review\\ReviewServerConfig\\SystemSetting.cfg") |
| | | #define _REVIEW_SERVER_SYSTEM_PASSWORD_FILE_PATH_ _T("C:\\DIT_Review\\ReviewServerConfig\\SystemSetting.dat") |
| | | //#define _REVIEW_RECIPE_BACKUP_PATH_CPJT _T("E:\\DIT Back up\\DIT Review\\Recipe") |
| | | //#define _REVIEW_SERVER_SYSTEM_SETTING_BACKUP_PATH_CPJT _T("E:\\DIT Back up\\DIT Review\\ReviewServerConfig") |
| | | #define _REVIEW_RECIPE_BACKUP_PATH_CPJT _T("\\\\126.100.100.10\\d\\DIT Back up\\DIT Review\\Recipe") |
| | | #define _REVIEW_SERVER_SYSTEM_SETTING_BACKUP_PATH_CPJT _T("\\\\126.100.100.10\\d\\DIT Back up\\DIT Review\\ReviewServerConfig") |
| | | #define _REVIEW_SYSTEM_TITLE_ _T("ReviewSystem") |