// ENRITView.cpp : CENRITView Ŭ·¡½ºÀÇ ±¸Çö // #include "stdafx.h" #include "ENRIT.h" #include "ENRITDoc.h" #include "ENRITView.h" #ifdef _DEBUG #define new DEBUG_NEW #endif // CENRITView // CENRITView »ý¼º/¼Ò¸ê IMPLEMENT_DYNCREATE(CENRITView, CFormView) CENRITView::CENRITView() : CFormView(CENRITView::IDD) { m_pViewInspectInfo = NULL; m_pViewDefect = NULL; m_pViewScanImage = NULL; m_pViewRecipeSetting = NULL; m_pViewLiveCam = NULL; m_pViewHWSetting = NULL; m_IV2M = NULL; m_eCurEntry = GLOBAL_DEFINE::EV_VIEW_End; m_eCurView = eView_End; } CENRITView::~CENRITView() { if(NULL != m_pViewInspectInfo) delete m_pViewInspectInfo; m_pViewInspectInfo = NULL; if(NULL != m_pViewDefect) delete m_pViewDefect; m_pViewDefect = NULL; if(NULL != m_pViewScanImage) delete m_pViewScanImage; m_pViewScanImage = NULL; if(NULL != m_pViewRecipeSetting) delete m_pViewRecipeSetting; m_pViewRecipeSetting = NULL; if(NULL != m_pViewLiveCam) delete m_pViewLiveCam; m_pViewLiveCam = NULL; if(NULL != m_pViewHWSetting) delete m_pViewHWSetting; m_pViewHWSetting = NULL; } BOOL CENRITView::PreCreateWindow(CREATESTRUCT& cs) { // TODO: CREATESTRUCT cs¸¦ ¼öÁ¤ÇÏ¿© ¿©±â¿¡¼­ // Window Ŭ·¡½º ¶Ç´Â ½ºÅ¸ÀÏÀ» ¼öÁ¤ÇÕ´Ï´Ù. return CFormView::PreCreateWindow(cs); } // CENRITView ±×¸®±â void CENRITView::OnDraw(CDC* /*pDC*/) { } // CENRITView Áø´Ü void CENRITView::DoDataExchange(CDataExchange* pDX) { CFormView::DoDataExchange(pDX); int i; UINT nViewID[] = {IDC_BTN_MAIN_INSINFOR, IDC_BTN_MAIN_DEFECTVIEW,IDC_BTN_MAIN_IMAGE_VIEW, IDC_BTN_MAIN_RECIPE_VIEW, IDC_BTN_MAIN_LIVE_CAM_VIEW, IDC_BTN_MAIN_HW_VIEW,IDC_BTN_MAIN_EXIT}; for(i=0; iScreenToClient(&rcBut); this->GetWindowRect(&rcMain); rcWindow = CRect(rcMain.left+5,rcMain.top+5,rcMain.right-5,rcBut.top-5); m_pViewInspectInfo = new CViewInsInformation(); m_pViewInspectInfo->Create(CViewInsInformation::IDD,this); m_pViewInspectInfo->MoveWindow(rcWindow); m_pViewInspectInfo->ShowWindow(SW_HIDE); m_pViewDefect = new CViewDefect(); m_pViewDefect->Create(CViewDefect::IDD,this); m_pViewDefect->MoveWindow(rcWindow); m_pViewDefect->ShowWindow(SW_HIDE); m_pViewScanImage = new CViewScanImage(); m_pViewScanImage->Create(CViewScanImage::IDD,this); m_pViewScanImage->MoveWindow(rcWindow); m_pViewScanImage->ShowWindow(SW_HIDE); m_pViewRecipeSetting = new CViewRecipeSetting(); m_pViewRecipeSetting->Create(CViewRecipeSetting::IDD,this); m_pViewRecipeSetting->MoveWindow(rcWindow); m_pViewRecipeSetting->ShowWindow(SW_HIDE); m_pViewLiveCam = new CViewLiveCam(); m_pViewLiveCam->Create(CViewLiveCam::IDD,this); m_pViewLiveCam->MoveWindow(rcWindow); m_pViewLiveCam->ShowWindow(SW_HIDE); m_pViewHWSetting = new CViewHWSetting(); m_pViewHWSetting->Create(CViewHWSetting::IDD,this); m_pViewHWSetting->MoveWindow(rcWindow); m_pViewHWSetting->ShowWindow(SW_HIDE); SwitchView(GLOBAL_DEFINE::EV_VIEW_INFO); } void CENRITView::ClickMenuButton() { UINT nID = GetFocus()->GetDlgCtrlID(); GLOBAL_DEFINE::ENTRY_VIEW eEntry = GLOBAL_DEFINE::EV_VIEW_End; switch(nID){ case IDC_BTN_MAIN_INSINFOR: eEntry = GLOBAL_DEFINE::EV_VIEW_INFO; break; case IDC_BTN_MAIN_DEFECTVIEW: eEntry = GLOBAL_DEFINE::EV_VIEW_DEFECT; break; case IDC_BTN_MAIN_IMAGE_VIEW: eEntry = GLOBAL_DEFINE::EV_VIEW_IMAGE; break; case IDC_BTN_MAIN_RECIPE_VIEW: eEntry = GLOBAL_DEFINE::EV_VIEW_RECIPE; break; case IDC_BTN_MAIN_LIVE_CAM_VIEW: eEntry = GLOBAL_DEFINE::EV_VIEW_LIVE; break; case IDC_BTN_MAIN_HW_VIEW: eEntry = GLOBAL_DEFINE::EV_VIEW_HW; break; case IDC_BTN_MAIN_EXIT: eEntry = GLOBAL_DEFINE::EV_EXIT; break; } SwitchView(eEntry); } void CENRITView::SwitchView(GLOBAL_DEFINE::ENTRY_VIEW eEntry) { if(GetCurEntry() == eEntry){ return; } if(GLOBAL_DEFINE::EV_EXIT != eEntry) SetButtonEnableAll(TRUE); UINT nViewID = -1; switch(eEntry){ case GLOBAL_DEFINE::EV_VIEW_INFO: nViewID = CViewInsInformation::IDD; SetButtonEnable(eView_InsInfo, FALSE); break; case GLOBAL_DEFINE::EV_VIEW_DEFECT: nViewID = CViewDefect::IDD; SetButtonEnable(eView_DefectView, FALSE); break; case GLOBAL_DEFINE::EV_VIEW_IMAGE: nViewID = CViewScanImage::IDD; SetButtonEnable(eView_ImageView, FALSE); break; case GLOBAL_DEFINE::EV_VIEW_RECIPE: nViewID = CViewRecipeSetting::IDD; SetButtonEnable(eView_Recipe, FALSE); break; case GLOBAL_DEFINE::EV_VIEW_LIVE: nViewID = CViewLiveCam::IDD; SetButtonEnable(eView_LiveCam, FALSE); break; case GLOBAL_DEFINE::EV_VIEW_HW: nViewID = CViewHWSetting::IDD; SetButtonEnable(eView_HWSetting, FALSE); break; case GLOBAL_DEFINE::EV_EXIT: if(IDNO == AfxMessageBox(_T("Exit RCutInspection Program?"), MB_YESNO | MB_ICONQUESTION)) { return; } if(m_IV2M != NULL) m_IV2M->CommandExitButtonClick(); GetParent()->PostMessageW(WM_USER_SYSTEM_CLOSE); return; default: return; } if(nViewID>=0) { ChangeView(nViewID); SetCurEntry(eEntry); } } void CENRITView::ChangeView(UINT nViewID) { UINT nShow; UINT eFrameView[] = {CViewInsInformation::IDD,CViewDefect::IDD,CViewScanImage::IDD,CViewRecipeSetting::IDD,CViewLiveCam::IDD,CViewHWSetting::IDD}; for(int i=0; iShowWindow(nShow); break; case EV_VIEW_DEFECT: m_pViewDefect->ShowWindow(nShow); break; case EV_VIEW_IMAGE: m_pViewScanImage->ShowWindow(nShow); break; case EV_VIEW_RECIPE: m_pViewRecipeSetting->ShowWindow(nShow); break; case EV_VIEW_LIVE: m_pViewLiveCam->ShowWindow(nShow); break; case EV_VIEW_HW: m_pViewHWSetting->ShowWindow(nShow); break; } } } void CENRITView::SetButtonEnableAll(BOOL bEnable) { for(int i=0; i= eView_End) return; if(m_ctrlBtn[eSelView].GetEnabled() != bEnable){ m_ctrlBtn[eSelView].SetEnabled(bEnable); } if(!bEnable){ m_eCurView = eSelView; } } void CENRITView::View_LicenseInfo() { if(m_pViewHWSetting == NULL) return; m_pViewHWSetting->View_LicenseInfo(); } void CENRITView::SetV2M(IViewInterface2Parent* pV2M) { m_IV2M = pV2M; if(m_pViewInspectInfo != NULL) m_pViewInspectInfo->SetView2Main(pV2M); if(m_pViewDefect != NULL) m_pViewDefect->SetV2M(pV2M); if(m_pViewLiveCam != NULL) m_pViewLiveCam->SetV2M(pV2M); if(m_pViewRecipeSetting != NULL) m_pViewRecipeSetting->SetV2M(pV2M); if(m_pViewScanImage != NULL) m_pViewScanImage->SetV2M(pV2M); } void CENRITView::SetGlassData(CGlass_Data *pGlass) { m_pGlassData = pGlass; if(m_pViewRecipeSetting != NULL) m_pViewRecipeSetting->SetGlassData(pGlass); if(m_pViewDefect != NULL) m_pViewDefect->SetGlassData(pGlass); if(m_pViewLiveCam != NULL) m_pViewLiveCam->SetGlassData(pGlass); if(m_pViewScanImage != NULL) m_pViewScanImage->SetGlassData(pGlass); if(m_pViewInspectInfo != NULL) m_pViewInspectInfo->SetGlassData(pGlass); } void CENRITView::SetTransferData(CTransfer_Data *pTrans) { if(m_pViewInspectInfo != NULL) m_pViewInspectInfo->SetTransferData(pTrans); } void CENRITView::SetHardwareSetting(CHardwareSettings *pHW) { m_pHardwareSetting = pHW; if(m_pViewHWSetting != NULL) { m_pViewHWSetting->SetSettingParm(pHW); } if(m_pViewLiveCam != NULL) { m_pViewLiveCam->SetRecipe(m_pHardwareSetting); } if(m_pViewScanImage != NULL) { m_pViewScanImage->SetRecipe(pHW); } } void CENRITView::SetRecipeSettings(CGlassRecipe *pRecipe) { m_pGlassRecipe = pRecipe; if(m_pViewInspectInfo != NULL) { m_pViewInspectInfo->SetRecipe(m_pHardwareSetting,pRecipe); } if(m_pViewRecipeSetting != NULL) { m_pViewRecipeSetting->SetRecipe(m_pHardwareSetting,pRecipe); } if(m_pViewDefect != NULL) m_pViewDefect->SetRecipe(m_pHardwareSetting); } void CENRITView::ResetViewAll() { if(m_pViewInspectInfo != NULL) { m_pViewInspectInfo->ResetView(); } if(m_pViewDefect != NULL) m_pViewDefect->ResetView(); if(m_pViewScanImage != NULL) { m_pViewScanImage->ResetView(); } if(m_pViewRecipeSetting != NULL) { m_pViewRecipeSetting->SetGlassData(NULL); } } void CENRITView::UpdateTransferData() { if(m_pViewInspectInfo != NULL) { m_pViewInspectInfo->Refresh(); } } void CENRITView::AddHistory(HISTORY_RESULT Data) { if(m_pViewInspectInfo != NULL) { m_pViewInspectInfo->AddHistoryData(Data); } } void CENRITView::ViewRefresh(PROG_MSG ProcMsg) { int iCam; switch(ProcMsg.nState) { case 1: if(m_pViewRecipeSetting != NULL) m_pViewRecipeSetting->ViewRefresh(ProcMsg); if(m_pViewScanImage != NULL) m_pViewScanImage->ViewRefresh(ProcMsg); break; case VIEW_REFRESH_INIT_VIEW: ResetViewAll(); break; case VIEW_REFRESH_ONESCAN_END: if(m_pHardwareSetting == NULL) return; if(m_pViewRecipeSetting == NULL) return; if(m_pViewScanImage == NULL) return; for(iCam=0;iCamGetCameraSettings(iCam,0); if(pCamera == NULL) continue; ProcMsg.nState = 2; ProcMsg.nSide = (int)pCamera->m_eDimension; m_pViewRecipeSetting->ViewRefresh(ProcMsg); m_pViewScanImage->ViewRefresh(ProcMsg); } break; case VIEW_REFRESH_INSPECT_END: if(m_pHardwareSetting == NULL) return; if(m_pViewRecipeSetting == NULL) return; if(m_pViewScanImage == NULL) return; for(iCam=0;iCamGetCameraSettings(iCam,0); if(pCamera == NULL) continue; ProcMsg.nState = 2; ProcMsg.nSide = (int)pCamera->m_eDimension; m_pViewRecipeSetting->ViewRefresh(ProcMsg); m_pViewScanImage->ViewRefresh(ProcMsg); pCamera = m_pHardwareSetting->GetCameraSettings(iCam,1); if(pCamera == NULL) continue; ProcMsg.nState = 2; ProcMsg.nSide = (int)pCamera->m_eDimension; m_pViewRecipeSetting->ViewRefresh(ProcMsg); m_pViewScanImage->ViewRefresh(ProcMsg); } break; } } void CENRITView::RefreshDefect(CString strDefect) { if(m_pGlassData == NULL) return; MapDefect *pMapDefect = m_pGlassData->GetMapDefect(); if(m_pViewInspectInfo != NULL) { m_pViewInspectInfo->SetDefect(pMapDefect); } if(m_pViewDefect != NULL) { m_pViewDefect->SetDefectList(pMapDefect); m_pViewDefect->SetDefectPath(strDefect); } } void CENRITView::InitView(Init_View_Command eVew) { switch(eVew) { case VIEW_RECIPE: ResetViewAll(); break; case VIEW_SCANIMAGE: if(m_pViewInspectInfo != NULL) { m_pViewInspectInfo->ResetView(); } if(m_pViewRecipeSetting != NULL) { m_pViewRecipeSetting->InitView(); } break; } } BOOL CENRITView::SetSplineImg(LPBYTE pImg,CSize szImg,int iPosition) { if(m_pViewInspectInfo == NULL) return FALSE; return m_pViewInspectInfo->SetSplineImg(pImg,szImg,iPosition); } BOOL CENRITView::SetNotchImg(LPBYTE pImg,CSize szImg,int bPosDir) { if(m_pViewInspectInfo == NULL) return FALSE; return m_pViewInspectInfo->SetNotchImg(pImg,szImg,bPosDir); }