|
// 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; i<eView_End; i++){
|
DDX_Control(pDX, nViewID[i], m_ctrlBtn[i]);
|
}
|
}
|
|
BEGIN_MESSAGE_MAP(CENRITView, CFormView)
|
END_MESSAGE_MAP()
|
|
BEGIN_EVENTSINK_MAP(CENRITView, CFormView)
|
ON_EVENT(CENRITView, IDC_BTN_MAIN_INSINFOR, DISPID_CLICK, CENRITView::ClickMenuButton, VTS_NONE)
|
ON_EVENT(CENRITView, IDC_BTN_MAIN_DEFECTVIEW, DISPID_CLICK, CENRITView::ClickMenuButton, VTS_NONE)
|
ON_EVENT(CENRITView, IDC_BTN_MAIN_IMAGE_VIEW, DISPID_CLICK, CENRITView::ClickMenuButton, VTS_NONE)
|
ON_EVENT(CENRITView, IDC_BTN_MAIN_RECIPE_VIEW, DISPID_CLICK, CENRITView::ClickMenuButton, VTS_NONE)
|
ON_EVENT(CENRITView, IDC_BTN_MAIN_LIVE_CAM_VIEW, DISPID_CLICK, CENRITView::ClickMenuButton, VTS_NONE)
|
ON_EVENT(CENRITView, IDC_BTN_MAIN_HW_VIEW, DISPID_CLICK, CENRITView::ClickMenuButton, VTS_NONE)
|
ON_EVENT(CENRITView, IDC_BTN_MAIN_EXIT, DISPID_CLICK, CENRITView::ClickMenuButton, VTS_NONE)
|
END_EVENTSINK_MAP()
|
|
// CENRITView ¸Þ½ÃÁö 󸮱â
|
|
void CENRITView::CreateChildView()
|
{
|
CRect rcBut,rcMain,rcWindow;
|
|
m_ctrlBtn[eView_InsInfo].GetWindowRect(&rcBut);
|
this->ScreenToClient(&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; i<eView_End; i++)
|
{
|
if(eFrameView[i] == nViewID)
|
nShow = SW_SHOW;
|
else
|
nShow = SW_HIDE;
|
|
switch(i)
|
{
|
case EV_VIEW_INFO: m_pViewInspectInfo->ShowWindow(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; i++){
|
if(m_ctrlBtn[i].GetEnabled() != bEnable){
|
m_ctrlBtn[i].SetEnabled(bEnable);
|
}
|
}
|
}
|
|
GLOBAL_DEFINE::ENTRY_VIEW CENRITView::GetCurEntry()
|
{
|
return m_eCurEntry;
|
}
|
|
void CENRITView::SetCurEntry(GLOBAL_DEFINE::ENTRY_VIEW View)
|
{
|
m_eCurEntry = View;
|
}
|
|
void CENRITView::SetButtonEnable(eView eSelView, BOOL bEnable)
|
{
|
if(eSelView >= 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;iCam<MAX_PANEL_SIDE;iCam++)
|
{
|
CCameraSettings *pCamera = m_pHardwareSetting->GetCameraSettings(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;iCam<MAX_PANEL_SIDE;iCam++)
|
{
|
CCameraSettings *pCamera = m_pHardwareSetting->GetCameraSettings(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);
|
}
|