ReviewSystem/ReviewRecipeEditor/ReviewRecipeEditorDlg.cpp
@@ -1,5 +1,5 @@ // ReviewRecipeEditorDlg.cpp : 구현 파일 // ReviewRecipeEditorDlg.cpp : ���� ���� // #include "stdafx.h" @@ -17,7 +17,7 @@ #endif // CReviewRecipeEditorDlg 대화 상자 // CReviewRecipeEditorDlg ��ȭ ���� CReviewRecipeEditorDlg::CReviewRecipeEditorDlg(CWnd* pParent /*=NULL*/) : CDialog(CReviewRecipeEditorDlg::IDD, pParent) @@ -162,18 +162,18 @@ END_MESSAGE_MAP() // CReviewRecipeEditorDlg 메시지 처리기 // CReviewRecipeEditorDlg ���� ó���� BOOL CReviewRecipeEditorDlg::OnInitDialog() { CDialog::OnInitDialog(); // 이 대화 상자의 아이콘을 설정합니다. 응용 프로그램의 주 창이 대화 상자가 아닐 경우에는 // 프레임워크가 이 작업을 자동으로 수행합니다. SetIcon(m_hIcon, TRUE); // 큰 아이콘을 설정합니다. SetIcon(m_hIcon, FALSE); // 작은 아이콘을 설정합니다. // �� ��ȭ ������ �������� �����մϴ�. ���� ���α��� �� â�� ��ȭ ���ڰ� �ƴ� ��쿡�� // �����ӿ�ũ�� �� �۾��� �ڵ����� �����մϴ�. SetIcon(m_hIcon, TRUE); // ū �������� �����մϴ�. SetIcon(m_hIcon, FALSE); // ���� �������� �����մϴ�. // TODO: 여기에 추가 초기화 작업을 추가합니다. // TODO: ��� �߰� �ʱ�ȭ �۾��� �߰��մϴ�. //m_bReviewSystemPC = IsReviewSystemPC(); m_bReviewSystemPC = TRUE; pReviewRecipeEditor = this; @@ -189,29 +189,29 @@ InitRecipeListGridControl(); RefreshRecipeList(); return TRUE; // 포커스를 컨트롤에 설정하지 않으면 TRUE를 반환합니다. return TRUE; // ��Ŀ���� ��Ʈ�ѿ� �������� ������ TRUE�� ��ȯ�մϴ�. } // 대화 상자에 최소화 단추를 추가할 경우 아이콘을 그리려면 // 아래 코드가 필요합니다. 문서/뷰 모델을 사용하는 MFC 응용 프로그램의 경우에는 // 프레임워크에서 이 작업을 자동으로 수행합니다. // ��ȭ ���ڿ� �ּ�ȭ ���߸� �߰��� ��� �������� ������ // �Ʒ� �ڵ尡 �ʿ��մϴ�. ����/�� ���� ����ϴ� MFC ���� ���α��� ��쿡�� // �����ӿ�ũ���� �� �۾��� �ڵ����� �����մϴ�. void CReviewRecipeEditorDlg::OnPaint() { if (IsIconic()) { CPaintDC dc(this); // 그리기를 위한 디바이스 컨텍스트 CPaintDC dc(this); // ���⸦ ���� ����̽� ���ؽ�Ʈ SendMessage(WM_ICONERASEBKGND, reinterpret_cast<WPARAM>(dc.GetSafeHdc()), 0); // 클라이언트 사각형에서 아이콘을 가운데에 맞춥니다. // Ŭ���̾�Ʈ �簢������ �������� ����� ����ϴ�. int cxIcon = GetSystemMetrics(SM_CXICON); int cyIcon = GetSystemMetrics(SM_CYICON); CRect rect; GetClientRect(&rect); int x = (rect.Width() - cxIcon + 1) / 2; int y = (rect.Height() - cyIcon + 1) / 2; // 아이콘을 그립니다. // �������� ���ϴ�. dc.DrawIcon(x, y, m_hIcon); } else @@ -220,8 +220,8 @@ } } // 사용자가 최소화된 창을 끄는 동안에 커서가 표시되도록 시스템에서 // 이 함수를 호출합니다. // ����ڰ� �ּ�ȭ�� â�� ��� ���ȿ� Ŀ���� ǥ�õǵ��� �ý��ۿ��� // �� �Լ��� ȣ���մϴ�. HCURSOR CReviewRecipeEditorDlg::OnQueryDragIcon() { return static_cast<HCURSOR>(m_hIcon); @@ -230,7 +230,7 @@ void CReviewRecipeEditorDlg::OnBnClickedButtonReviewRcpEditorCreate() { // TODO: 여기에 컨트롤 알림 처리기 코드를 추가합니다. // TODO: ��� ��Ʈ�� �˸� ó���� �ڵ带 �߰��մϴ�. BOOL bUseRecipeInfo = FALSE; int nIdx; CString strRecipeName, strNewRecipeName, strMessage; @@ -240,7 +240,7 @@ if(cellID.row > 0 && cellID.col > 0) { strRecipeName = m_ctrlGridRecipeList.GetItemText(cellID.row, 1); strMessage.Format(_T("Do you want to create new recipe using %s recipe information?"), strRecipeName);//_T("%s 레시피 정보를 이용하여 생성하시겠습니까?"), strRecipeName); strMessage.Format(_T("Do you want to create new recipe using %s recipe information?"), strRecipeName);//_T("%s ������ ������ �̿��Ͽ� �����Ͻðڽ��ϱ�?"), strRecipeName); //if (IDYES == AfxMessageBox(strMessage, MB_YESNO | MB_ICONQUESTION)) //{ @@ -268,11 +268,11 @@ if(nIdx != -1) { strTemp = strTemp.Mid(nIdx + 1); strNewPath.Format(_T("\\\\%s\\C\\%s"), NETIP_A2E_REVIEW_SYSTEM, strTemp); strNewPath.Format(_T("\\\\%s\\D\\%s"), NETIP_A2E_REVIEW_SYSTEM, strTemp); //210805 } else { strNewPath.Format(_T("\\\\%s\\C\\DIT_Review\\Recipe\\%s.rcp"), NETIP_A2E_REVIEW_SYSTEM, strNewRecipeName); strNewPath.Format(_T("\\\\%s\\D\\DIT_Review\\Recipe\\%s.rcp"), NETIP_A2E_REVIEW_SYSTEM, strNewRecipeName); //210805 } } @@ -290,22 +290,22 @@ if(nIdx != -1) { strTemp = strTemp.Mid(nIdx + 1); strSrcPath.Format(_T("\\\\%s\\C\\%s"), NETIP_A2E_REVIEW_SYSTEM, strTemp); strSrcPath.Format(_T("\\\\%s\\D\\%s"), NETIP_A2E_REVIEW_SYSTEM, strTemp); //210805 } else { strSrcPath.Format(_T("\\\\%s\\C\\DIT_Review\\Recipe\\%s.rcp"), NETIP_A2E_REVIEW_SYSTEM, strRecipeName); strSrcPath.Format(_T("\\\\%s\\D\\DIT_Review\\Recipe\\%s.rcp"), NETIP_A2E_REVIEW_SYSTEM, strRecipeName); //210805 } } if(CopyFile(strSrcPath, strNewPath, FALSE) == FALSE) { strMessage.Format(_T("Fail to create %s recipe"));//_T("%s 레시피 생성 실패!")); strMessage.Format(_T("Fail to create %s recipe"));//_T("%s ������ ���� ����!")); AfxMessageBox(strMessage); } else { //LYW_#3344_CF AOI Review Config File 백업 기능 개선 ADD START //LYW_#3344_CF AOI Review Config File ��� ��� ���� ADD START CString strBackupPath = _REVIEW_RECIPE_BACKUP_PATH_CPJT; CreateDirectory(strBackupPath, NULL); @@ -316,9 +316,9 @@ strSource.Format(_T("%s\\%s.rcp"), _REVIEW_RECIPE_PATH_, strNewRecipeName); strDest.Format(_T("%s\\%s.rcp"), strBackupPath, strNewRecipeName); CopyFile(strSource, strDest, TRUE); //LYW_#3344_CF AOI Review Config File 백업 기능 개선 ADD END //LYW_#3344_CF AOI Review Config File ��� ��� ���� ADD END // [2017:4:17]-[WEZASW] : CIM(Recipe) 보고 항목 추가. // [2017:4:17]-[WEZASW] : CIM(Recipe) ���� �� �߰�. COPYDATA_RECIPE2REV copyData; copyData.Message = MsgRecipe2Rev_RecipeCreate; copyData.nPPID = _ttoi(strNewRecipeName); @@ -331,12 +331,12 @@ if(file.Open(strNewPath, CFile::modeCreate | CFile::modeWrite) == FALSE) { strMessage.Format(_T("Fail to create %s recipe"));//_T("%s 레시피 생성 실패!")); strMessage.Format(_T("Fail to create %s recipe"));//_T("%s ������ ���� ����!")); AfxMessageBox(strMessage); } else { strMessage.Format(_T("Please select the default file!"));//_T("먼저 기본 파일을 선택해주세요!")); strMessage.Format(_T("Please select the default file!"));//_T("���� �⺻ ������ �������ּ���!")); AfxMessageBox(strMessage); } @@ -368,7 +368,7 @@ void CReviewRecipeEditorDlg::OnBnClickedButtonReviewRcpEditorDelete() { // TODO: 여기에 컨트롤 알림 처리기 코드를 추가합니다. // TODO: ��� ��Ʈ�� �˸� ó���� �ڵ带 �߰��մϴ�. int nIdx; CString strRecipeName, strPath, strMessage, strTemp; CCellID cellID = m_ctrlGridRecipeList.GetFocusCell(); @@ -389,20 +389,20 @@ if (nIdx != -1) { strTemp = strTemp.Mid(nIdx + 1); strPath.Format(_T("\\\\%s\\C\\%s"), NETIP_A2E_REVIEW_SYSTEM, strTemp); strPath.Format(_T("\\\\%s\\D\\%s"), NETIP_A2E_REVIEW_SYSTEM, strTemp); //210805 } else { strPath.Format(_T("\\\\%s\\C\\DIT_Review\\Recipe\\%s.rcp"), NETIP_A2E_REVIEW_SYSTEM, strRecipeName); strPath.Format(_T("\\\\%s\\D\\DIT_Review\\Recipe\\%s.rcp"), NETIP_A2E_REVIEW_SYSTEM, strRecipeName); //210805 } } //_T("%s 레시피를 삭제하시겠습니까?"), strRecipeName); //_T("%s �����Ǹ� �����Ͻðڽ��ϱ�?"), strRecipeName); strMessage.Format(_T("Do you want to delete %s recipe?"), strRecipeName); if (IDYES == AfxMessageBox(strMessage, MB_YESNO | MB_ICONQUESTION)) { // [2017:5:20]-[WEZASW] : 현재 적용된 Recipe(PPID)는 삭제 금지 요청. // [2017:5:20]-[WEZASW] : ���� ����� Recipe(PPID)�� ���� ���� ��û. if (strRecipeName.Compare(m_strCurrentRecipeName) == 0) { strMessage.Format(_T("Currently applied Recipe(%s) can not be deleted!"), strRecipeName); @@ -411,16 +411,16 @@ } DeleteFile(strPath); //LYW_#3344_CF AOI Review Config File 백업 기능 개선 ADD START //LYW_#3344_CF AOI Review Config File ��� ��� ���� ADD START CString strBackupPath = _REVIEW_RECIPE_BACKUP_PATH_CPJT; CString strDest; strDest.Format(_T("%s\\%s.rcp"), strBackupPath, strRecipeName); DeleteFile(strDest); //LYW_#3344_CF AOI Review Config File 백업 기능 개선 ADD END //LYW_#3344_CF AOI Review Config File ��� ��� ���� ADD END // [2017:4:17]-[WEZASW] : CIM(Recipe) 보고 항목 추가. // [2017:4:17]-[WEZASW] : CIM(Recipe) ���� �� �߰�. COPYDATA_RECIPE2REV copyData; copyData.Message = MsgRecipe2Rev_RecipeDelete; copyData.nPPID = _ttoi(strRecipeName); @@ -429,7 +429,7 @@ } else { AfxMessageBox(_T("Please select recipe."));//_T("레시피를 선택하세요.")); AfxMessageBox(_T("Please select recipe."));//_T("�����Ǹ� �����ϼ���.")); } RefreshRecipeList(); @@ -442,7 +442,7 @@ void CReviewRecipeEditorDlg::OnBnClickedButtonReviewRcpEditorLoad() { // TODO: 여기에 컨트롤 알림 처리기 코드를 추가합니다. // TODO: ��� ��Ʈ�� �˸� ó���� �ڵ带 �߰��մϴ�. BOOL bReturn; CString strRecipeName; CCellID cellID = m_ctrlGridRecipeList.GetFocusCell(); @@ -456,7 +456,7 @@ { m_strCurrentRecipeName = strRecipeName; // [2017:4:17]-[WEZASW] : CIM(Recipe) 보고 항목 추가. // [2017:4:17]-[WEZASW] : CIM(Recipe) ���� �� �߰�. COPYDATA_RECIPE2REV copyData; copyData.Message = MsgRecipe2Rev_RecipeChange; copyData.nPPID = _ttoi(m_strCurrentRecipeName); @@ -471,7 +471,7 @@ } else { AfxMessageBox(_T("Please select recipe."));//_T("레시피를 선택하세요.")); AfxMessageBox(_T("Please select recipe."));//_T("�����Ǹ� �����ϼ���.")); } } @@ -517,7 +517,7 @@ if (bRet) { // [2017:4:17]-[WEZASW] : CIM(Recipe) 보고 항목 추가. // [2017:4:17]-[WEZASW] : CIM(Recipe) ���� �� �߰�. COPYDATA_RECIPE2REV copyData; copyData.Message = MsgRecipe2Rev_RecipeModify; copyData.nPPID = _ttoi(RecipeName); @@ -540,14 +540,14 @@ strDest.Format(_T("%s\\%s_%s.rcp"), strBackupPath, RecipeName, strBackupFile); CopyFile(strSource, strDest, TRUE); //LYW_#3344_CF AOI Review Config File 백업 기능 개선 ADD START //LYW_#3344_CF AOI Review Config File ��� ��� ���� ADD START strBackupPath = _REVIEW_RECIPE_BACKUP_PATH_CPJT; CreateDirectory(strBackupPath, NULL); strSource.Format(_T("%s\\%s.rcp"), _REVIEW_RECIPE_PATH_, RecipeName); strDest.Format(_T("%s\\%s.rcp"), strBackupPath, RecipeName); CopyFile(strSource, strDest, TRUE); //LYW_#3344_CF AOI Review Config File 백업 기능 개선 ADD END //LYW_#3344_CF AOI Review Config File ��� ��� ���� ADD END strMessage.Format(_T("Complete to save %s recipe!"), RecipeName); //AfxMessageBox(strMessage); @@ -567,7 +567,7 @@ void CReviewRecipeEditorDlg::OnBnClickedButtonReviewRcpEditorSave() { // TODO: 여기에 컨트롤 알림 처리기 코드를 추가합니다. // TODO: ��� ��Ʈ�� �˸� ó���� �ڵ带 �߰��մϴ�. CString strMessage; if (m_strCurrentRecipeName.IsEmpty()) @@ -584,7 +584,7 @@ if (bRet) { // [2017:4:17]-[WEZASW] : CIM(Recipe) 보고 항목 추가. // [2017:4:17]-[WEZASW] : CIM(Recipe) ���� �� �߰�. COPYDATA_RECIPE2REV copyData; copyData.Message = MsgRecipe2Rev_RecipeModify; copyData.nPPID = _ttoi(m_strCurrentRecipeName); @@ -607,14 +607,14 @@ strDest.Format(_T("%s\\%s_%s.rcp"), strBackupPath, m_strCurrentRecipeName, strBackupFile); CopyFile(strSource, strDest, TRUE); //LYW_#3344_CF AOI Review Config File 백업 기능 개선 ADD START //LYW_#3344_CF AOI Review Config File ��� ��� ���� ADD START strBackupPath = _REVIEW_RECIPE_BACKUP_PATH_CPJT; CreateDirectory(strBackupPath, NULL); strSource.Format(_T("%s\\%s.rcp"), _REVIEW_RECIPE_PATH_, m_strCurrentRecipeName); strDest.Format(_T("%s\\%s.rcp"), strBackupPath, m_strCurrentRecipeName); CopyFile(strSource, strDest, FALSE); //LYW_#3344_CF AOI Review Config File 백업 기능 개선 ADD END //LYW_#3344_CF AOI Review Config File ��� ��� ���� ADD END strMessage.Format(_T("Complete to save %s recipe!"), m_strCurrentRecipeName); AfxMessageBox(strMessage); @@ -641,7 +641,7 @@ void CReviewRecipeEditorDlg::OnBnClickedButtonReviewrcpEditorExit() { // TODO: 여기에 컨트롤 알림 처리기 코드를 추가합니다. // TODO: ��� ��Ʈ�� �˸� ó���� �ڵ带 �߰��մϴ�. DestroyWindow(); } @@ -706,15 +706,15 @@ void CReviewRecipeEditorDlg::InitTabControl() { int nIdx = 0; m_ctrlTabMain.InsertItem(nIdx++, _T("Common")); //_T(" 공통 ")); m_ctrlTabMain.InsertItem(nIdx++, _T("Review")); //_T(" 리뷰 ")); m_ctrlTabMain.InsertItem(nIdx++, _T("Common")); //_T(" ���� ")); m_ctrlTabMain.InsertItem(nIdx++, _T("Review")); //_T(" ���� ")); m_ctrlTabMain.InsertItem(nIdx++, _T("WSI")); //_T(" WSI ")); m_ctrlTabMain.InsertItem(nIdx++, _T("Align")); //_T(" 얼라인 ")); m_ctrlTabMain.InsertItem(nIdx++, _T("Judgement")); //_T(" 판정 ")); m_ctrlTabMain.InsertItem(nIdx++, _T("Align")); //_T(" ����� ")); m_ctrlTabMain.InsertItem(nIdx++, _T("Judgement")); //_T(" ���� ")); // 미사용으로 제외 // m_ctrlTabMain.InsertItem(nIdx++, _T("Measure")); //_T(" 측정 ")); // m_ctrlTabMain.InsertItem(nIdx++, _T("Finding Defect")); //_T(" 결함찾기 ")); // �̻������ ���� // m_ctrlTabMain.InsertItem(nIdx++, _T("Measure")); //_T(" ���� ")); // m_ctrlTabMain.InsertItem(nIdx++, _T("Finding Defect")); //_T(" ����ã�� ")); //m_ctrlTabMain.InsertItem(nIdx++, _T("Glass")); //_T(" Glass Info ")); } @@ -750,19 +750,19 @@ Item.mask = GVIF_TEXT; Item.row = nRowIdx; Item.col = nColIdx++; strTemp.Format(_T("Index"));//_T("인덱스")); strTemp.Format(_T("Index"));//_T("�ε���")); Item.strText = strTemp; m_ctrlGridRecipeList.SetItem(&Item); Item.row = nRowIdx; Item.col = nColIdx++; strTemp.Format(_T("Recipe Name"));//_T("레시피 이름")); strTemp.Format(_T("Recipe Name"));//_T("������ �̸�")); Item.strText = strTemp; m_ctrlGridRecipeList.SetItem(&Item); Item.row = nRowIdx; Item.col = nColIdx++; strTemp.Format(_T("Last Modified Date"));//_T("최종 수정 날짜")); strTemp.Format(_T("Last Modified Date"));//_T("���� ���� ��¥")); Item.strText = strTemp; m_ctrlGridRecipeList.SetItem(&Item); } @@ -787,7 +787,7 @@ for(i = 0; i < nRecipeCount; i++) { //레시피 인덱스 //������ �ε��� nColIdx = 0; Item.mask = GVIF_TEXT; Item.row = nRowIdx; @@ -796,13 +796,13 @@ Item.strText = strTemp; m_ctrlGridRecipeList.SetItem(&Item); //레시피 이름 //������ �̸� nColIdx++; strTemp = strArrayRecipeName.GetAt(i); m_ctrlGridRecipeList.SetItemText(nRowIdx, nColIdx, strTemp); m_ctrlGridRecipeList.SetItemState(nRowIdx, nColIdx, GVIS_READONLY); //최종 수정 날짜 //���� ���� ��¥ nColIdx++; strTemp = strArrayLastWriteTime.GetAt(i); m_ctrlGridRecipeList.SetItemText(nRowIdx, nColIdx, strTemp); @@ -837,11 +837,11 @@ if(nIdx != -1) { strTemp = strTemp.Mid(nIdx + 1); strSearchPath.Format(_T("\\\\%s\\C\\%s"), NETIP_A2E_REVIEW_SYSTEM, strTemp); strSearchPath.Format(_T("\\\\%s\\D\\%s"), NETIP_A2E_REVIEW_SYSTEM, strTemp); } else { strSearchPath.Format(_T("\\\\%s\\C\\DIT_Review\\Recipe\\*.rcp"), NETIP_A2E_REVIEW_SYSTEM); strSearchPath.Format(_T("\\\\%s\\D\\DIT_Review\\Recipe\\*.rcp"), NETIP_A2E_REVIEW_SYSTEM); //210805 } } @@ -902,12 +902,12 @@ if(nIdx != -1) { strTemp = strTemp.Mid(nIdx + 1); strPath.Format(_T("\\\\%s\\C\\%s"), NETIP_A2E_REVIEW_SYSTEM, strTemp); strPath.Format(_T("\\\\%s\\D\\%s"), NETIP_A2E_REVIEW_SYSTEM, strTemp); } else { strPath.Format(_T("\\\\%s\\C\\DIT_Review\\Recipe\\%s.rcp"), NETIP_A2E_REVIEW_SYSTEM, strRecipeName); } strPath.Format(_T("\\\\%s\\D\\DIT_Review\\Recipe\\%s.rcp"), NETIP_A2E_REVIEW_SYSTEM, strRecipeName);//210805 } } CMacroFile macroFile; @@ -995,11 +995,11 @@ if(nIdx != -1) { strTemp = strTemp.Mid(nIdx + 1); strPath.Format(_T("\\\\%s\\C\\%s"), NETIP_A2E_REVIEW_SYSTEM, strTemp); strPath.Format(_T("\\\\%s\\D\\%s"), NETIP_A2E_REVIEW_SYSTEM, strTemp); } else { strPath.Format(_T("\\\\%s\\C\\DIT_Review\\Recipe\\%s.rcp"), NETIP_A2E_REVIEW_SYSTEM, strRecipeName); strPath.Format(_T("\\\\%s\\D\\DIT_Review\\Recipe\\%s.rcp"), NETIP_A2E_REVIEW_SYSTEM, strRecipeName); //210805 } } @@ -1069,11 +1069,11 @@ if(nIdx != -1) { strTemp = strTemp.Mid(nIdx + 1); strPath.Format(_T("\\\\%s\\C\\%s"), NETIP_A2E_REVIEW_SYSTEM, strTemp); strPath.Format(_T("\\\\%s\\D\\%s"), NETIP_A2E_REVIEW_SYSTEM, strTemp); } else { strPath.Format(_T("\\\\%s\\C\\DIT_Review\\ReviewServerConfig\\SystemSetting.cfg"), NETIP_A2E_REVIEW_SYSTEM); strPath.Format(_T("\\\\%s\\D\\DIT_Review\\ReviewServerConfig\\SystemSetting.cfg"), NETIP_A2E_REVIEW_SYSTEM); //210805 } } @@ -1106,12 +1106,12 @@ void CReviewRecipeEditorDlg::OnTcnSelchangeTabReviewRcpEditorMainTab(NMHDR *pNMHDR, LRESULT *pResult) { // TODO: 여기에 컨트롤 알림 처리기 코드를 추가합니다. // TODO: ��� ��Ʈ�� �˸� ó���� �ڵ带 �߰��մϴ�. RecipeMainTab nTabIdx; nTabIdx = (RecipeMainTab)m_ctrlTabMain.GetCurSel(); // [2017:1:25]-[WEZASW] : SystemMachine_B7E_WSI 설비 분리(WSI 유/무) // [2017:1:25]-[WEZASW] : SystemMachine_B7E_WSI ���� �и�(WSI ��/��) switch(GetCurrentTapIndex(nTabIdx)) { case COMMON_TAB: @@ -1217,8 +1217,8 @@ } void CReviewRecipeEditorDlg::OnCancel() { // TODO: 여기에 특수화된 코드를 추가 및/또는 기본 클래스를 호출합니다. //_T("레시피 에디터 프로그램을 종료하시겠습니까?"), MB_YESNO | MB_ICONQUESTION)) // TODO: ��� Ư��ȭ�� �ڵ带 �߰� ��/�Ǵ� �⺻ Ŭ������ ȣ���մϴ�. //_T("������ ������ ���α��� �����Ͻðڽ��ϱ�?"), MB_YESNO | MB_ICONQUESTION)) if (IDNO == AfxMessageBox(_T("Do you want to exit recipe editor program?"), MB_YESNO | MB_ICONERROR)) { return; @@ -1344,7 +1344,7 @@ void CReviewRecipeEditorDlg::OnStnClickedStaticSelectRcipe() { // TODO: 여기에 컨트롤 알림 처리기 코드를 추가합니다. // TODO: ��� ��Ʈ�� �˸� ó���� �ڵ带 �߰��մϴ�. } @@ -1447,7 +1447,7 @@ } else { AfxMessageBox(_T("Please select recipe."));//_T("레시피를 선택하세요.")); AfxMessageBox(_T("Please select recipe."));//_T("�����Ǹ� �����ϼ���.")); } return bSuccess; @@ -1457,7 +1457,7 @@ { BOOL bSuccess = TRUE; // 중복 Recipe 생성 금지. // �ߺ� Recipe ���� ����. CFileFind finder; CString strRecipeFile; strRecipeFile.Format(_T("%s\\%s.rcp"), _REVIEW_RECIPE_PATH_, strRecipeName); ReviewSystem/ReviewRecipeEditor/stdafx.h
@@ -1,7 +1,7 @@ // stdafx.h : 자주 사용하지만 자주 변경되지는 않는 // 표준 시스템 포함 파일 및 프로젝트 관련 포함 파일이 // 들어 있는 포함 파일입니다. // stdafx.h : ���� ��������� ���� ��������� �ʴ� // ǥ�� �ý��� ���� ���� �� ������Ʈ ���� ���� ������ // ��� �ִ� ���� �����Դϴ�. #pragma once @@ -10,37 +10,42 @@ #endif #ifndef VC_EXTRALEAN #define VC_EXTRALEAN // 거의 사용되지 않는 내용은 Windows 헤더에서 제외합니다. #define VC_EXTRALEAN // ���� ������ �ʴ� ������ Windows ������� �����մϴ�. #endif #include "targetver.h" #define _ATL_CSTRING_EXPLICIT_CONSTRUCTORS // 일부 CString 생성자는 명시적으로 선언됩니다. #define _ATL_CSTRING_EXPLICIT_CONSTRUCTORS // �Ϻ� CString �����ڴ� ��������� ����˴ϴ�. // MFC의 공통 부분과 무시 가능한 경고 메시지에 대한 숨기기를 해제합니다. // MFC�� ���� �κа� ���� ������ ��� ������ ���� ����⸦ �����մϴ�. #define _AFX_ALL_WARNINGS #include <afxwin.h> // MFC 핵심 및 표준 구성 요소입니다. #include <afxext.h> // MFC 확장입니다. #include <afxwin.h> // MFC �ٽ� �� ǥ�� ���� ����Դϴ�. #include <afxext.h> // MFC Ȯ���Դϴ�. #include <afxdisp.h> // MFC 자동화 클래스입니다. #include <afxdisp.h> // MFC �ڵ�ȭ Ŭ�����Դϴ�. #ifndef _AFX_NO_OLE_SUPPORT #include <afxdtctl.h> // Internet Explorer 4 공용 컨트롤에 대한 MFC 지원입니다. #include <afxdtctl.h> // Internet Explorer 4 ���� ��Ʈ�ѿ� ���� MFC �����Դϴ�. #endif #ifndef _AFX_NO_AFXCMN_SUPPORT #include <afxcmn.h> // Windows 공용 컨트롤에 대한 MFC 지원입니다. #include <afxcmn.h> // Windows ���� ��Ʈ�ѿ� ���� MFC �����Դϴ�. #endif // _AFX_NO_AFXCMN_SUPPORT #include <afxcontrolbars.h> // MFC의 리본 및 컨트롤 막대 지원 #include <afxcontrolbars.h> // MFC�� ���� �� ��Ʈ�� ���� ���� #include <afxinet.h> #include <afxcontrolbars.h> #define _REVIEW_BASE_PATH_ _T("C:\\DIT_Review") #define _REVIEW_RECIPE_PATH_ _T("C:\\DIT_Review\\Recipe") #define _REVIEW_RECIPE_BACKUP_PATH_ _T("C:\\DIT_Review\\Recipe\\Backup") #define _REVIEW_RECIPE_LOGIN_LOG_PATH_ _T("C:\\DIT_Review\\Recipe\\LoginLog") #define _REVIEW_SERVER_SYSTEM_SETTING_FILE_PATH_ _T("C:\\DIT_Review\\ReviewServerConfig\\SystemSetting.cfg") //#define _REVIEW_BASE_PATH_ _T("C:\\DIT_Review") //#define _REVIEW_RECIPE_PATH_ _T("C:\\DIT_Review\\Recipe") //#define _REVIEW_RECIPE_BACKUP_PATH_ _T("C:\\DIT_Review\\Recipe\\Backup") //#define _REVIEW_RECIPE_LOGIN_LOG_PATH_ _T("C:\\DIT_Review\\Recipe\\LoginLog") //#define _REVIEW_SERVER_SYSTEM_SETTING_FILE_PATH_ _T("C:\\DIT_Review\\ReviewServerConfig\\SystemSetting.cfg") #define _REVIEW_BASE_PATH_ _T("D:\\DIT_Review") //210805 #define _REVIEW_RECIPE_PATH_ _T("D:\\DIT_Review\\Recipe") #define _REVIEW_RECIPE_BACKUP_PATH_ _T("D:\\DIT_Review\\Recipe\\Backup") #define _REVIEW_RECIPE_LOGIN_LOG_PATH_ _T("D:\\DIT_Review\\Recipe\\LoginLog") #define _REVIEW_SERVER_SYSTEM_SETTING_FILE_PATH_ _T("D:\\DIT_Review\\ReviewServerConfig\\SystemSetting.cfg") #define _REVIEW_RECIPE_BACKUP_PATH_CPJT _T("\\\\126.100.100.5\\d\\DIT Back up\\DIT Review\\Recipe") #define _REVIEW_SERVER_SYSTEM_SETTING_BACKUP_PATH_CPJT _T("\\\\126.100.100.5\\d\\DIT Back up\\DIT Review\\ReviewServerConfig") @@ -72,19 +77,19 @@ #define COPYDATA_RECIPEEDITOR2REVIEWSYSTEM 1600 // [2017:4:17]-[WEZASW] : CIM(Recipe) 보고 항목 추가. // [2017:4:17]-[WEZASW] : CIM(Recipe) ���� �� �߰�. enum MsgRecipe2Rev { MsgRecipe2Rev_None = -1, MsgRecipe2Rev_StandardCameraGlassPos, MsgRev2Recipe_StandardCameraGlassPos, MsgRecipe2Rev_RecipeCreate, // Recipe(PPID) 추가 MsgRecipe2Rev_RecipeCreate, // Recipe(PPID) �߰� MsgRev2Recipe_RecipeCreate, MsgRecipe2Rev_RecipeChange, // Recipe(PPID) 변경 MsgRecipe2Rev_RecipeChange, // Recipe(PPID) ���� MsgRev2Recipe_RecipeChange, MsgRecipe2Rev_RecipeDelete, // Recipe(PPID) 삭제 MsgRecipe2Rev_RecipeDelete, // Recipe(PPID) ���� MsgRev2Recipe_RecipeDelete, MsgRecipe2Rev_RecipeModify, // Recipe(PPID) Parameter 수정 MsgRecipe2Rev_RecipeModify, // Recipe(PPID) Parameter ���� MsgRev2Recipe_RecipeModify }; ReviewSystem/ReviewSystem/CameraControlAlign.cpp
@@ -5,7 +5,8 @@ #include "CHReviewSetting/SystemInfo.h" #include "CHReviewRecipe/RsRcpAlignInfo.h" #define ALIGN_TEMPLATE_PATH _T("C:\\DIT_Review\\Recipe\\AlignImage\\") #define ALIGN_TEMPLATE_PATH _T("D:\\DIT_Review\\Recipe\\AlignImage\\") //#define ALIGN_TEMPLATE_PATH _T("C:\\DIT_Review\\Recipe\\AlignImage\\") //210805 using namespace CHImageControls; ReviewSystem/ReviewSystem/CameraControlReview.cpp
@@ -207,11 +207,13 @@ CString strPath =m_pRCC2P->IRCC2P_GetTotalPitchImageName(); if(strPath == _T("")){ strPath = _T("C:\\DIT_Review\\Recipe\\AlignImage\\ReviewAlign.bmp"); strPath = _T("D:\\DIT_Review\\Recipe\\AlignImage\\ReviewAlign.bmp"); //strPath = _T("C:\\DIT_Review\\Recipe\\AlignImage\\ReviewAlign.bmp"); //210805 } else { strPath = _T("C:\\DIT_Review\\Recipe\\AlignImage\\")+strPath; strPath = _T("D:\\DIT_Review\\Recipe\\AlignImage\\") + strPath; //strPath = _T("C:\\DIT_Review\\Recipe\\AlignImage\\")+strPath; //210805 } ReviewSystem/ReviewSystem/DlgReviewOffSetTool.h
@@ -21,11 +21,11 @@ //enum MotorOringTYPE { // LEFT_Top = 0, RIGHT_TOP,LEFT_BOTTOM, RIGHT_BOTTOM //}; #define REVIEW_OFFSET_CONFIGFILE_PATH _T("C:\\DIT_Review\\ReviewServerConfig\\") #define REVIEW_OFFSET_CONFIGFILE_PATH _T("D:\\DIT_Review\\ReviewServerConfig\\") //210805 #define REVIEW_OFFSET_CONFIGFILE_NAME _T("ReviewOffSet.cfg") #define REVIEW_OFFSET_CONFIGFILE_FULL_PATHNAME _T("C:\\DIT_Review\\ReviewServerConfig\\ReviewOffSet.cfg") #define REVIEW_OFFSET_CONFIGFILE_FULL_PATHNAME _T("D:\\DIT_Review\\ReviewServerConfig\\ReviewOffSet.cfg") #define REVIEW_OFFSET_BACKUP_FORDER_NAME _T("OffsetBackup") #define REVIEW_OFFSET_BACKUP_FORDER_PATH _T("C:\\DIT_Review\\ReviewServerConfig\\OffsetBackup\\") #define REVIEW_OFFSET_BACKUP_FORDER_PATH _T("D:\\DIT_Review\\ReviewServerConfig\\OffsetBackup\\") // CDlgDefocusList 대화 상자입니다. interface IDialogReviewOffSet2Parent ReviewSystem/ReviewSystem/FileUploadControl.cpp
@@ -179,7 +179,7 @@ // // CCommendParam *pParam = NULL; // // //FTPUpLoad이면 반환 // //FTPUpLoad�̸� ��ȯ // if( bFTPUpload ) // return FALSE; // @@ -301,7 +301,8 @@ if (NULL == hWnd) { g_pLog->DisplayMessage(_T("Find FTPUploader Program : Fail.")); StartFTPUploader(_T("C:\\DIT_Review")); StartFTPUploader(_T("D:\\DIT_Review")); //210805 } else { @@ -314,7 +315,7 @@ else { g_pLog->DisplayMessage(_T("Send Data to FTPUploader : Fail.")); RestartFTPUploader(_T("C:\\DIT_Review")); //A2E FTPUploader RestartFTPUploader(_T("D:\\DIT_Review")); //A2E FTPUploader //210805 bRet = FALSE; } } ReviewSystem/ReviewSystem/MainFrm.cpp
@@ -451,9 +451,9 @@ #define strScript "RESTART^AFControl.exe^C:\\AFControl\\program\\AFControl.exe" CFile file; if( FALSE == file.Open(_T("C:\\DIT_Review\\MakeScript.TSF"),CFile::modeCreate | CFile::modeWrite) ) if( FALSE == file.Open(_T("D:\\DIT_Review\\MakeScript.TSF"),CFile::modeCreate | CFile::modeWrite) ) //210805 { g_pLog->DisplayMessage(_T("File[C:\\DIT_Review\\MakeScript.TSF] Create Fail!!")); g_pLog->DisplayMessage(_T("File[D:\\DIT_Review\\MakeScript.TSF] Create Fail!!")); //210805 return; } @@ -485,7 +485,7 @@ CString strTarget; strTarget.Format(_T("\\\\126.100.100.220\\c\\RemoteTaskMgr\\T\\CopyScript.TSF")); BOOL bRet = CopyFile(_T("C:\\DIT_Review\\MakeScript.TSF"),strTarget,FALSE); BOOL bRet = CopyFile(_T("D:\\DIT_Review\\MakeScript.TSF"),strTarget,FALSE); //210805 if(bRet == FALSE) g_pLog->DisplayMessage(_T("[%s]Send Script Fail!"), strTarget); ///////////////////////////////////// ReviewSystem/ReviewSystem/stdafx.h
@@ -77,20 +77,34 @@ #define ID_TIMER_SEND_SIGNAL_ALIVE (WM_USER + 107) #define _REVIEW_SERVER_BASE_PATH_ _T("C:\\DIT_Review") #define _REVIEW_SERVER_LOG_PATH_ _T("C:\\DIT_Review\\ReviewServerLog") #define _REVIEW_RECIPE_PATH_ _T("C:\\DIT_Review\\Recipe") #define _REVIEW_REF_RECIPE_PATH_ _T("C:\\DIT_Review\\Recipe\\Reference") #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_BASE_PATH_ _T("D:\\DIT_Review") //210805 #define _REVIEW_SERVER_LOG_PATH_ _T("D:\\DIT_Review\\ReviewServerLog") #define _REVIEW_RECIPE_PATH_ _T("D:\\DIT_Review\\Recipe") #define _REVIEW_REF_RECIPE_PATH_ _T("D:\\DIT_Review\\Recipe\\Reference") #define _REVIEW_SERVER_CONFIG_PATH_ _T("D:\\DIT_Review\\ReviewServerConfig") #define _REVIEW_SERVER_SYSTEM_SETTING_FILE_PATH_ _T("D:\\DIT_Review\\ReviewServerConfig\\SystemSetting.cfg") #define _SYSTEM_SETTING_TITLE_ _T("ReviewSystemSetting") #define _RECIPE_EDITOR_TITLE_ _T("ReviewRecipeEditor") #define _REVIEW_LOGIN_LOG_PATH_ _T("C:\\DIT_Review\\ReviewServerLog\\LoginLog") #define _REVIEW_REFLOW_RECIPE_PATH_ _T("C:\\DIT_Review\\Recipe\\Reflow") #define ALIGN_TEMPLATE_PATH _T("C:\\DIT_Review\\Recipe\\AlignImage") #define _REVIEW_LOGIN_LOG_PATH_ _T("D:\\DIT_Review\\ReviewServerLog\\LoginLog") #define _REVIEW_REFLOW_RECIPE_PATH_ _T("D:\\DIT_Review\\Recipe\\Reflow") #define ALIGN_TEMPLATE_PATH _T("D:\\DIT_Review\\Recipe\\AlignImage") #define _REVIEW_RECIPE_BACKUP_PATH_CPJT _T("\\\\126.100.100.5\\d\\DIT Back up\\DIT Review\\Recipe") #define _REVIEW_SERVER_SYSTEM_SETTING_BACKUP_PATH_CPJT _T("\\\\126.100.100.5\\d\\DIT Back up\\DIT Review\\ReviewServerConfig") //#define _REVIEW_SERVER_BASE_PATH_ _T("C:\\DIT_Review") //#define _REVIEW_SERVER_LOG_PATH_ _T("C:\\DIT_Review\\ReviewServerLog") //#define _REVIEW_RECIPE_PATH_ _T("C:\\DIT_Review\\Recipe") //#define _REVIEW_REF_RECIPE_PATH_ _T("C:\\DIT_Review\\Recipe\\Reference") //#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 _SYSTEM_SETTING_TITLE_ _T("ReviewSystemSetting") //#define _RECIPE_EDITOR_TITLE_ _T("ReviewRecipeEditor") //#define _REVIEW_LOGIN_LOG_PATH_ _T("C:\\DIT_Review\\ReviewServerLog\\LoginLog") //#define _REVIEW_REFLOW_RECIPE_PATH_ _T("C:\\DIT_Review\\Recipe\\Reflow") //#define ALIGN_TEMPLATE_PATH _T("C:\\DIT_Review\\Recipe\\AlignImage") //#define _REVIEW_RECIPE_BACKUP_PATH_CPJT _T("\\\\126.100.100.5\\d\\DIT Back up\\DIT Review\\Recipe") //#define _REVIEW_SERVER_SYSTEM_SETTING_BACKUP_PATH_CPJT _T("\\\\126.100.100.5\\d\\DIT Back up\\DIT Review\\ReviewServerConfig") #define TOTAL_WINDOW_SIZE_X 1920 #define TOTAL_WINDOW_SIZE_Y 1040 ReviewSystem/ReviewSystemSetting/ReviewSystemSettingDlg.cpp
@@ -1,5 +1,5 @@ // ReviewSystemSettingDlg.cpp : 구현 파일 // ReviewSystemSettingDlg.cpp : ���� ���� // #include "stdafx.h" @@ -31,20 +31,20 @@ #endif // 응용 프로그램 정보에 사용되는 CAboutDlg 대화 상자입니다. // ���� ���α� ������ ���Ǵ� CAboutDlg ��ȭ �����Դϴ�. class CAboutDlg : public CDialog { public: CAboutDlg(); // 대화 상자 데이터입니다. // ��ȭ ���� �������Դϴ�. enum { IDD = IDD_ABOUTBOX }; protected: virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 지원입니다. virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV �����Դϴ�. // 구현입니다. // �����Դϴ�. protected: DECLARE_MESSAGE_MAP() }; @@ -62,7 +62,7 @@ END_MESSAGE_MAP() // CReviewSystemSettingDlg 대화 상자 // CReviewSystemSettingDlg ��ȭ ���� @@ -87,7 +87,8 @@ m_pNetworkManager = NULL; // init Log new CDisplayMessage(_T("C:\\DIT_Review\\ReviewServerConfig\\Log")); //new CDisplayMessage(_T("C:\\DIT_Review\\ReviewServerConfig\\Log")); new CDisplayMessage(_T("D:\\DIT_Review\\ReviewServerConfig\\Log"));//210805 } CReviewSystemSettingDlg::~CReviewSystemSettingDlg() @@ -185,15 +186,15 @@ END_MESSAGE_MAP() // CReviewSystemSettingDlg 메시지 처리기 // CReviewSystemSettingDlg ���� ó���� BOOL CReviewSystemSettingDlg::OnInitDialog() { CDialog::OnInitDialog(); // 시스템 메뉴에 "정보..." 메뉴 항목을 추가합니다. // �ý��� ���� "����..." �� ���� �߰��մϴ�. // IDM_ABOUTBOX는 시스템 명령 범위에 있어야 합니다. // IDM_ABOUTBOX�� �ý��� ��� ������ �־�� �մϴ�. ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX); ASSERT(IDM_ABOUTBOX < 0xF000); @@ -211,12 +212,12 @@ } } // 이 대화 상자의 아이콘을 설정합니다. 응용 프로그램의 주 창이 대화 상자가 아닐 경우에는 // 프레임워크가 이 작업을 자동으로 수행합니다. SetIcon(m_hIcon, TRUE); // 큰 아이콘을 설정합니다. SetIcon(m_hIcon, FALSE); // 작은 아이콘을 설정합니다. // �� ��ȭ ������ �������� �����մϴ�. ���� ���α��� �� â�� ��ȭ ���ڰ� �ƴ� ��쿡�� // �����ӿ�ũ�� �� �۾��� �ڵ����� �����մϴ�. SetIcon(m_hIcon, TRUE); // ū �������� �����մϴ�. SetIcon(m_hIcon, FALSE); // ���� �������� �����մϴ�. // TODO: 여기에 추가 초기화 작업을 추가합니다. // TODO: ��� �߰� �ʱ�ȭ �۾��� �߰��մϴ�. CreateReviewDirectory(); CreateManager(); ReadReviewSystemConfigFile(); @@ -225,7 +226,7 @@ g_pLog->DisplayMessage(_T("SystemSetting is Started!")); return TRUE; // 포커스를 컨트롤에 설정하지 않으면 TRUE를 반환합니다. return TRUE; // ��Ŀ���� ��Ʈ�ѿ� �������� ������ TRUE�� ��ȯ�մϴ�. } void CReviewSystemSettingDlg::OnSysCommand(UINT nID, LPARAM lParam) @@ -241,19 +242,19 @@ } } // 대화 상자에 최소화 단추를 추가할 경우 아이콘을 그리려면 // 아래 코드가 필요합니다. 문서/뷰 모델을 사용하는 MFC 응용 프로그램의 경우에는 // 프레임워크에서 이 작업을 자동으로 수행합니다. // ��ȭ ���ڿ� �ּ�ȭ ���߸� �߰��� ��� �������� ������ // �Ʒ� �ڵ尡 �ʿ��մϴ�. ����/�� ���� ����ϴ� MFC ���� ���α��� ��쿡�� // �����ӿ�ũ���� �� �۾��� �ڵ����� �����մϴ�. void CReviewSystemSettingDlg::OnPaint() { if (IsIconic()) { CPaintDC dc(this); // 그리기를 위한 디바이스 컨텍스트 CPaintDC dc(this); // ���⸦ ���� ����̽� ���ؽ�Ʈ SendMessage(WM_ICONERASEBKGND, reinterpret_cast<WPARAM>(dc.GetSafeHdc()), 0); // 클라이언트 사각형에서 아이콘을 가운데에 맞춥니다. // Ŭ���̾�Ʈ �簢������ �������� ����� ����ϴ�. int cxIcon = GetSystemMetrics(SM_CXICON); int cyIcon = GetSystemMetrics(SM_CYICON); CRect rect; @@ -261,7 +262,7 @@ int x = (rect.Width() - cxIcon + 1) / 2; int y = (rect.Height() - cyIcon + 1) / 2; // 아이콘을 그립니다. // �������� ���ϴ�. dc.DrawIcon(x, y, m_hIcon); } else @@ -270,8 +271,8 @@ } } // 사용자가 최소화된 창을 끄는 동안에 커서가 표시되도록 시스템에서 // 이 함수를 호출합니다. // ����ڰ� �ּ�ȭ�� â�� ��� ���ȿ� Ŀ���� ǥ�õǵ��� �ý��ۿ��� // �� �Լ��� ȣ���մϴ�. HCURSOR CReviewSystemSettingDlg::OnQueryDragIcon() { return static_cast<HCURSOR>(m_hIcon); @@ -280,7 +281,7 @@ void CReviewSystemSettingDlg::OnTcnSelchangeTabSysSettingMainTab(NMHDR *pNMHDR, LRESULT *pResult) { // TODO: 여기에 컨트롤 알림 처리기 코드를 추가합니다. // TODO: ��� ��Ʈ�� �˸� ó���� �ڵ带 �߰��մϴ�. SystemMainTab nTabIdx; nTabIdx = (SystemMainTab)m_ctrlTabMain.GetCurSel(); @@ -397,12 +398,12 @@ void CReviewSystemSettingDlg::InitTabControl() { int nIdx = 0; m_ctrlTabMain.InsertItem(nIdx++, _T("Equipment Setting"));//_T("장비 설정")); m_ctrlTabMain.InsertItem(nIdx++, _T("Glass Type Setting"));//_T("글라스 타입 설정")); m_ctrlTabMain.InsertItem(nIdx++, _T("Align Setting"));//_T("얼라인 설정")); m_ctrlTabMain.InsertItem(nIdx++, _T("Signal Setting"));//_T("Signal 설정")); m_ctrlTabMain.InsertItem(nIdx++, _T("Motor Setting"));//_T("모터 설정")); m_ctrlTabMain.InsertItem(nIdx++, _T("Network Setting"));//_T("네트워크 설정")); m_ctrlTabMain.InsertItem(nIdx++, _T("Equipment Setting"));//_T("��� ����")); m_ctrlTabMain.InsertItem(nIdx++, _T("Glass Type Setting"));//_T("�۶� Ÿ�� ����")); m_ctrlTabMain.InsertItem(nIdx++, _T("Align Setting"));//_T("����� ����")); m_ctrlTabMain.InsertItem(nIdx++, _T("Signal Setting"));//_T("Signal ����")); m_ctrlTabMain.InsertItem(nIdx++, _T("Motor Setting"));//_T("���� ����")); m_ctrlTabMain.InsertItem(nIdx++, _T("Network Setting"));//_T("��Ʈ��ũ ����")); } BOOL CReviewSystemSettingDlg::ReadReviewSystemConfigFile() @@ -526,7 +527,7 @@ strBackupFile = strBackupPath + strBackupFile; CopyFile(_REVIEW_SERVER_SYSTEM_SETTING_FILE_PATH_, strBackupFile, TRUE); //LYW_#3344_CF AOI Review Config File 백업 기능 개선 ADD START //LYW_#3344_CF AOI Review Config File ��� ��� ���� ADD START strBackupPath = _REVIEW_SERVER_SYSTEM_SETTING_BACKUP_PATH_CPJT; CreateDirectory(strBackupPath, NULL); @@ -535,9 +536,9 @@ strBackupFile.Format(_T("%s\\SystemSetting.cfg"), strBackupPath); CopyFile(_REVIEW_SERVER_SYSTEM_SETTING_FILE_PATH_, strBackupFile, FALSE); //LYW_#3344_CF AOI Review Config File 백업 기능 개선 ADD END //LYW_#3344_CF AOI Review Config File ��� ��� ���� ADD END if (IDNO == AfxMessageBox(_T("Save complete. Do you want to close System Setting program?"), MB_YESNO | MB_ICONQUESTION))//_T("저장 완료되었습니다. 시스템 설정 프로그램을 종료하시겠습니까?"), MB_YESNO | MB_ICONQUESTION)) if (IDNO == AfxMessageBox(_T("Save complete. Do you want to close System Setting program?"), MB_YESNO | MB_ICONQUESTION))//_T("���� �Ϸ�Ǿ����ϴ�. �ý��� ���� ���α��� �����Ͻðڽ��ϱ�?"), MB_YESNO | MB_ICONQUESTION)) { return; } @@ -549,14 +550,14 @@ } else { AfxMessageBox(_T("Save Fail!"));//_T("저장 실패하였습니다.")); AfxMessageBox(_T("Save Fail!"));//_T("���� �����Ͽ����ϴ�.")); } } void CReviewSystemSettingDlg::OnBnClickedCancel() { // TODO: 여기에 컨트롤 알림 처리기 코드를 추가합니다. if (IDNO == AfxMessageBox(_T("Do you want to close System Setting program?"), MB_YESNO | MB_ICONQUESTION))//_T("시스템 설정 프로그램을 종료하시겠습니까?"), MB_YESNO | MB_ICONQUESTION)) // TODO: ��� ��Ʈ�� �˸� ó���� �ڵ带 �߰��մϴ�. if (IDNO == AfxMessageBox(_T("Do you want to close System Setting program?"), MB_YESNO | MB_ICONQUESTION))//_T("�ý��� ���� ���α��� �����Ͻðڽ��ϱ�?"), MB_YESNO | MB_ICONQUESTION)) { return; } @@ -568,7 +569,7 @@ BOOL CReviewSystemSettingDlg::OnCopyData(CWnd* pWnd, COPYDATASTRUCT* pCopyDataStruct) { // TODO: 여기에 메시지 처리기 코드를 추가 및/또는 기본값을 호출합니다. // TODO: ��� ���� ó���� �ڵ带 �߰� ��/�Ǵ� �⺻���� ȣ���մϴ�. if (pCopyDataStruct->dwData == COPYDATA_SYSTEMSETTING2REVIEWSYSTEM) { COPYDATA_SYSTEM2REV* pCopyData = (COPYDATA_SYSTEM2REV*)pCopyDataStruct->lpData; ReviewSystem/ReviewSystemSetting/stdafx.h
@@ -1,7 +1,7 @@ // stdafx.h : 자주 사용하지만 자주 변경되지는 않는 // 표준 시스템 포함 파일 및 프로젝트 관련 포함 파일이 // 들어 있는 포함 파일입니다. // stdafx.h : ���� ��������� ���� ��������� �ʴ� // ǥ�� �ý��� ���� ���� �� ������Ʈ ���� ���� ������ // ��� �ִ� ���� �����Դϴ�. #pragma once @@ -10,37 +10,42 @@ #endif #ifndef VC_EXTRALEAN #define VC_EXTRALEAN // 거의 사용되지 않는 내용은 Windows 헤더에서 제외합니다. #define VC_EXTRALEAN // ���� ������ �ʴ� ������ Windows ������� �����մϴ�. #endif #include "targetver.h" #define _ATL_CSTRING_EXPLICIT_CONSTRUCTORS // 일부 CString 생성자는 명시적으로 선언됩니다. #define _ATL_CSTRING_EXPLICIT_CONSTRUCTORS // �Ϻ� CString �����ڴ� ��������� ����˴ϴ�. // MFC의 공통 부분과 무시 가능한 경고 메시지에 대한 숨기기를 해제합니다. // MFC�� ���� �κа� ���� ������ ��� ������ ���� ����⸦ �����մϴ�. #define _AFX_ALL_WARNINGS #include <afxwin.h> // MFC 핵심 및 표준 구성 요소입니다. #include <afxext.h> // MFC 확장입니다. #include <afxwin.h> // MFC �ٽ� �� ǥ�� ���� ����Դϴ�. #include <afxext.h> // MFC Ȯ���Դϴ�. #include <afxdisp.h> // MFC 자동화 클래스입니다. #include <afxdisp.h> // MFC �ڵ�ȭ Ŭ�����Դϴ�. #ifndef _AFX_NO_OLE_SUPPORT #include <afxdtctl.h> // Internet Explorer 4 공용 컨트롤에 대한 MFC 지원입니다. #include <afxdtctl.h> // Internet Explorer 4 ���� ��Ʈ�ѿ� ���� MFC �����Դϴ�. #endif #ifndef _AFX_NO_AFXCMN_SUPPORT #include <afxcmn.h> // Windows 공용 컨트롤에 대한 MFC 지원입니다. #include <afxcmn.h> // Windows ���� ��Ʈ�ѿ� ���� MFC �����Դϴ�. #endif // _AFX_NO_AFXCMN_SUPPORT #include <afxcontrolbars.h> // MFC의 리본 및 컨트롤 막대 지원 #include <afxcontrolbars.h> // MFC�� ���� �� ��Ʈ�� ���� ���� #define _REVIEW_SERVER_BASE_PATH_ _T("C:\\DIT_Review") #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_SERVER_BASE_PATH_ _T("D:\\DIT_Review") //210805 #define _REVIEW_SERVER_CONFIG_PATH_ _T("D:\\DIT_Review\\ReviewServerConfig") #define _REVIEW_SERVER_SYSTEM_SETTING_FILE_PATH_ _T("D:\\DIT_Review\\ReviewServerConfig\\SystemSetting.cfg") #define _REVIEW_SERVER_SYSTEM_PASSWORD_FILE_PATH_ _T("D:\\DIT_Review\\ReviewServerConfig\\SystemSetting.dat") //#define _REVIEW_SERVER_BASE_PATH_ _T("C:\\DIT_Review") //#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("\\\\126.100.100.5\\d\\DIT Back up\\DIT Review\\Recipe") #define _REVIEW_SERVER_SYSTEM_SETTING_BACKUP_PATH_CPJT _T("\\\\126.100.100.5\\d\\DIT Back up\\DIT Review\\ReviewServerConfig") #define _REVIEW_SYSTEM_TITLE_ _T("ReviewSystem") @@ -60,7 +65,7 @@ MsgSystem2Rev_ChangeSysConfig, MsgRev2System_ChangeSysConfig, // [2017:5:2]-[WEZASW] : TFE Measurement 설비 UNIT Test(Signal 수동 발생)를 위한 추가 // [2017:5:2]-[WEZASW] : TFE Measurement ���� UNIT Test(Signal ���� ��)�� ���� �߰� MsgSystem2Rev_SendAlignAlarmSignal, MsgRev2System_SendAlignAlarmSignal, ReviewSystem/include/CHReviewRecipe/RsRcpAlignInfo.h
@@ -1,7 +1,11 @@ #pragma once #define ALIGN_IMAGE_PATH _T("C:\\DIT_Review\\Recipe\\AlignImage") #define REFLOW_IMAGE_PATH _T("C:\\DIT_Review\\Recipe\\Reflow") #define ALIGN_IMAGE_PATH _T("D:\\DIT_Review\\Recipe\\AlignImage") //210805 #define REFLOW_IMAGE_PATH _T("D:\\DIT_Review\\Recipe\\Reflow") //#define ALIGN_IMAGE_PATH _T("C:\\DIT_Review\\Recipe\\AlignImage") //#define REFLOW_IMAGE_PATH _T("C:\\DIT_Review\\Recipe\\Reflow") class AFX_EXT_CLASS CRsRcpAlignInfo { ReviewSystem/include/M_AutoDiagnosisManager/DiagnosisInfo.h
@@ -3,7 +3,8 @@ #include <vector> // path define #define REVIEW_AUTO_DIAGNOSIS_SETTING_FILE_PATH _T("C:\\DIT_Review\\DiagnosisConfig") #define REVIEW_AUTO_DIAGNOSIS_SETTING_FILE_PATH _T("D:\\DIT_Review\\DiagnosisConfig") //210805 //#define REVIEW_AUTO_DIAGNOSIS_SETTING_FILE_PATH _T("C:\\DIT_Review\\DiagnosisConfig") #define REVIEW_AUTO_DIAGNOSIS_SETTING_FILE_NAME _T("AutoDiagnosisSetting.cfg") #define REVIEW_AUTO_DIAGNOSIS_DATA_FILE_PATH _T("D:\\ResultData\\AutoDiagnosis") #define REVIEW_AUTO_DIAGNOSIS_DATA_IMAGE_FILE_PATH _T("D:\\ResultData\\AutoDiagnosis\\ResultImage") @@ -58,7 +59,7 @@ virtual void IDP2P_WsiMotorMotionEnd(int nModuleIdx, double dPosX, double dPosY) = 0; virtual BOOL IDP2P_DiagnosisSendCompleteSig()=0; virtual BOOL IDP2P_DiagnosisSendJudgeAlarm() = 0; //0412 AU°¡Aø´U ½AE£ Aß°¡ virtual BOOL IDP2P_DiagnosisSendJudgeAlarm() = 0; //0412 AU�Ƣ�A����U ��AE�� A���Ƣ� // Dialog virtual BOOL IDP2P_SetDlgFlatness(int nIndex) = 0; @@ -224,9 +225,9 @@ m_dReviewPanelPosY2 = 0; m_dReviewPanelPosX4 = 0; m_dReviewPanelPosY4 = 0; //#3514_LYW_CF AOI Review 자가진단 기능 개선_START //#3514_LYW_CF AOI Review �ڰ����� ��� ����_START m_nFlatnessSkipMode = 0; //#3514_LYW_CF AOI Review 자가진단 기능 개선_END //#3514_LYW_CF AOI Review �ڰ����� ��� ����_END } @@ -253,12 +254,12 @@ void SetPanelPosY_Wsi(double dData) { m_dPanelPosY = dData; } void SetPanelPosX2_Wsi(double dData) { m_dPanelPosX2 = dData; } void SetPanelPosY2_Wsi(double dData) { m_dPanelPosY2 = dData; } //#3514_LYW_CF AOI Review 자가진단 기능 개선_START //#3514_LYW_CF AOI Review �ڰ����� ��� ����_START void SetFlastnessSkipMode(double dData) { m_nFlatnessSkipMode = dData; } void SetSquarenessStandard(double dData) { m_dSquarenessStandard = dData; } void SetSquarenessStandard2(double dData) { m_dSquarenessStandard2 = dData; } void SetWSIStandard(double dData) { m_dWSIStandard = dData; } //#3514_LYW_CF AOI Review 자가진단 기능 개선_END //#3514_LYW_CF AOI Review �ڰ����� ��� ����_END // getter @@ -290,12 +291,12 @@ double GetPanelPosY_Wsi() const { return m_dPanelPosY; } double GetPanelPosX2_Wsi() const { return m_dPanelPosX2; } double GetPanelPosY2_Wsi() const { return m_dPanelPosY2; } //#3514_LYW_CF AOI Review 자가진단 기능 개선_START //#3514_LYW_CF AOI Review �ڰ����� ��� ����_START int GetFlastnessSkipMode() const { return m_nFlatnessSkipMode; } double GetSquarenessStandard() const { return m_dSquarenessStandard; } double GetSquarenessStandard2() const { return m_dSquarenessStandard2; } double GetWSIStandard() const { return m_dWSIStandard; } //#3514_LYW_CF AOI Review 자가진단 기능 개선_END //#3514_LYW_CF AOI Review �ڰ����� ��� ����_END //Review public: double GetReviewPanelPosX() const { return m_dReviewPanelPosX; } @@ -324,10 +325,10 @@ int m_nCameraFrameHeight; double m_dCameraResolution; double m_dJudgeData_Degree; //#3514_LYW_CF AOI Review 자가진단 기능 개선_START //#3514_LYW_CF AOI Review �ڰ����� ��� ����_START double m_dSquarenessStandard; double m_dSquarenessStandard2; //#3514_LYW_CF AOI Review 자가진단 기능 개선_END //#3514_LYW_CF AOI Review �ڰ����� ��� ����_END // Flatness CDiagnosisResult m_dataSettingResult_Flatness; // single data @@ -337,17 +338,17 @@ int m_nRangeCount_Flatness; int m_nGlassSizeX; int m_nGlassSizeY; //#3514_LYW_CF AOI Review 자가진단 기능 개선_START //#3514_LYW_CF AOI Review �ڰ����� ��� ����_START int m_nFlatnessSkipMode; //#3514_LYW_CF AOI Review 자가진단 기능 개선_END //#3514_LYW_CF AOI Review �ڰ����� ��� ����_END // wsi VectorDiagnosisResult m_vecSettingResult_Wsi; // add module count int m_nPanelCount_Wsi; double m_dJudgeData_3Sigma; //#3514_LYW_CF AOI Review 자가진단 기능 개선_START //#3514_LYW_CF AOI Review �ڰ����� ��� ����_START double m_dWSIStandard; //#3514_LYW_CF AOI Review 자가진단 기능 개선_END //#3514_LYW_CF AOI Review �ڰ����� ��� ����_END double m_dPanelPosX; double m_dPanelPosY;