// DlgSystemWSI.cpp : ±¸Çö ÆÄÀÏÀÔ´Ï´Ù.
|
//
|
|
#include "stdafx.h"
|
#include "ReviewSystemSetting.h"
|
#include "DlgSystemWSI.h"
|
#include "ReviewSystemSettingDlg.h"
|
#include "CHReviewSetting/Sys_SystemManager.h"
|
#include "CHCommonControls/GridCellCombo.h"
|
#include "CHReviewSetting/GantryInfo.h"
|
#include "afxdialogex.h"
|
|
|
// CDlgSystemWSI ´ëÈ »óÀÚÀÔ´Ï´Ù.
|
|
IMPLEMENT_DYNAMIC(CDlgSystemWSI, CDialog)
|
|
CDlgSystemWSI::CDlgSystemWSI(CWnd* pParent /*=NULL*/)
|
: CDialog(CDlgSystemWSI::IDD, pParent)
|
, m_nGantryIdx(0)
|
, m_nHeaderIdx(0)
|
{
|
m_nWSICount = 0;
|
}
|
|
CDlgSystemWSI::~CDlgSystemWSI()
|
{
|
}
|
|
void CDlgSystemWSI::DoDataExchange(CDataExchange* pDX)
|
{
|
DDX_Control(pDX, IDC_GRID_SYSTEM_WSI_INFO, m_ctrlGridWSIInfo);
|
DDX_Text(pDX, IDC_EDIT_SYS_SL_GANTRY_IDX, m_nGantryIdx);
|
DDX_Text(pDX, IDC_EDIT_SYS_SL_HEADER_IDX, m_nHeaderIdx);
|
CDialog::DoDataExchange(pDX);
|
}
|
|
|
BEGIN_MESSAGE_MAP(CDlgSystemWSI, CDialog)
|
ON_BN_CLICKED(IDOK, &CDlgSystemWSI::OnBnClickedOk)
|
ON_BN_CLICKED(IDCANCEL, &CDlgSystemWSI::OnBnClickedCancel)
|
ON_BN_CLICKED(IDC_BUTTON_SYS_SYSTEM_WSI_RESET, &CDlgSystemWSI::OnBnClickedButtonSysSystemAfmReset)
|
ON_BN_CLICKED(IDC_BUTTON_SYS_SYSTEM_WSI_APPLY, &CDlgSystemWSI::OnBnClickedButtonSysSystemAfmApply)
|
END_MESSAGE_MAP()
|
|
|
// CDlgSystemWSI ¸Þ½ÃÁö 󸮱âÀÔ´Ï´Ù.
|
|
|
void CDlgSystemWSI::OnBnClickedOk()
|
{
|
|
}
|
|
void CDlgSystemWSI::OnBnClickedCancel()
|
{
|
|
}
|
|
void CDlgSystemWSI::UpdateDialogData(int nGantryIdx, int nHeaderIdx, int nWSICount)
|
{
|
m_nGantryIdx = nGantryIdx;
|
m_nHeaderIdx = nHeaderIdx;
|
m_nWSICount = nWSICount;
|
|
UpdateData(FALSE);
|
FillWSIInfo();
|
|
m_ctrlGridWSIInfo.Invalidate(FALSE);
|
}
|
void CDlgSystemWSI::InitWSIInfoGridControl()
|
{
|
int nRowIdx, nColIdx, nRows, nCols, nFixRows, nFixCols;
|
CString strTemp;
|
|
nRows = WSI_INFO_GRID_ROW_COUNT;
|
nCols = m_nWSICount + 1;
|
nFixRows = 1;
|
nFixCols = 1;
|
nRowIdx = 0;
|
nColIdx = 0;
|
|
m_ctrlGridWSIInfo.GetDefaultCell(FALSE, FALSE)->SetBackClr(RGB(0xFF, 0xFF, 0xE0));
|
m_ctrlGridWSIInfo.SetRowCount(nRows);
|
m_ctrlGridWSIInfo.SetColumnCount(nCols);
|
m_ctrlGridWSIInfo.SetFixedRowCount(nFixRows);
|
m_ctrlGridWSIInfo.SetFixedColumnCount(nFixCols);
|
|
GV_ITEM Item;
|
|
Item.mask = GVIF_TEXT;
|
Item.row = nRowIdx++;
|
Item.col = nColIdx;
|
strTemp.Format(_T("Index")); //_T("À妽º"));
|
Item.strText = strTemp;
|
m_ctrlGridWSIInfo.SetItem(&Item);
|
|
Item.row = nRowIdx++;
|
Item.col = nColIdx;
|
strTemp.Format(_T("Controller Type")); //_T("ÄÁÆ®·Ñ·¯ ŸÀÔ"));
|
Item.strText = strTemp;
|
m_ctrlGridWSIInfo.SetItem(&Item);
|
|
Item.row = nRowIdx++;
|
Item.col = nColIdx;
|
strTemp.Format(_T("Connection Infomation")); //_T("¿¬°á Á¤º¸"));
|
Item.strText = strTemp;
|
m_ctrlGridWSIInfo.SetItem(&Item);
|
|
Item.row = nRowIdx++;
|
Item.col = nColIdx;
|
strTemp.Format(_T("Offset X(mm)")); //_T("¿ÀÇÁ¼Â X")); Review Camera ±âÁØ
|
Item.strText = strTemp;
|
m_ctrlGridWSIInfo.SetItem(&Item);
|
|
Item.row = nRowIdx++;
|
Item.col = nColIdx;
|
strTemp.Format(_T("Offset Y(mm)")); //_T("¿ÀÇÁ¼Â Y")); Review Camera ±âÁØ
|
Item.strText = strTemp;
|
m_ctrlGridWSIInfo.SetItem(&Item);
|
|
Item.row = nRowIdx++;
|
Item.col = nColIdx;
|
strTemp.Format(_T("WSI FOV X")); //WSI ÇØ»óµµ
|
Item.strText = strTemp;
|
m_ctrlGridWSIInfo.SetItem(&Item);
|
|
Item.row = nRowIdx++;
|
Item.col = nColIdx;
|
strTemp.Format(_T("WSI FOV Y")); //WSI ÇØ»óµµ
|
Item.strText = strTemp;
|
m_ctrlGridWSIInfo.SetItem(&Item);
|
|
Item.row = nRowIdx++;
|
Item.col = nColIdx;
|
strTemp.Format(_T("WSI ScanDir")); //WSI ÇØ»óµµ
|
Item.strText = strTemp;
|
m_ctrlGridWSIInfo.SetItem(&Item);
|
|
m_ctrlGridWSIInfo.AutoSize();
|
}
|
void CDlgSystemWSI::FillWSIInfo()
|
{
|
ChangeWSICountWSIInfoGridControl();
|
|
CReviewSystemSettingDlg* pDlg = (CReviewSystemSettingDlg*)AfxGetMainWnd();
|
if (pDlg==NULL) return;
|
|
CHeaderInfo *pHeaderInfo = pDlg->GetSys_HeaderInfo(m_nGantryIdx, m_nHeaderIdx);
|
if (pHeaderInfo==NULL) return;
|
|
int nColIdx = 1;
|
CStringArray strArrayOption;
|
CString strItemText =_T("");
|
int nWSICount = pHeaderInfo->GetWsiInfoCount();
|
|
for (int nWSIIdx=0; nWSIIdx<nWSICount; nWSIIdx++)
|
{
|
CWsiControlInfo *pWSIInfo = pHeaderInfo->GetWsiInfo(nWSIIdx);
|
if (pWSIInfo==NULL) continue;
|
|
int nRowIdx = 1;
|
|
//1. ÄÁÆ®·Ñ·¯ ŸÀÔ
|
CGridCellCombo* pCellCombo = (CGridCellCombo*)m_ctrlGridWSIInfo.GetCell(nRowIdx, nColIdx);
|
if(pCellCombo)
|
{
|
strArrayOption.RemoveAll();
|
pCellCombo->GetOptions(strArrayOption);
|
|
if(strArrayOption.GetSize() > 0 && pWSIInfo->GetControllerType() > -1)
|
{
|
strItemText = strArrayOption.GetAt(pWSIInfo->GetControllerType());
|
m_ctrlGridWSIInfo.SetItemText(nRowIdx, nColIdx, strItemText);
|
}
|
}
|
|
// 2. ¿¬°á Á¤º¸
|
nRowIdx++;
|
m_ctrlGridWSIInfo.SetItemText(nRowIdx, nColIdx, pWSIInfo->GetConnectionPort());
|
|
// 3. ¿ÀÇÁ¼Â X
|
nRowIdx++;
|
strItemText.Format(_T("%.3lf"), pWSIInfo->GetOffsetX());
|
m_ctrlGridWSIInfo.SetItemText(nRowIdx, nColIdx, strItemText);
|
|
// 4. ¿ÀÇÁ¼Â Y
|
nRowIdx++;
|
strItemText.Format(_T("%.3lf"), pWSIInfo->GetOffsetY());
|
m_ctrlGridWSIInfo.SetItemText(nRowIdx, nColIdx, strItemText);
|
|
// 5. WSI FOVX
|
nRowIdx++;
|
strItemText.Format(_T("%.3lf"), pWSIInfo->GetWSIFOVX());
|
m_ctrlGridWSIInfo.SetItemText(nRowIdx, nColIdx, strItemText);
|
|
// 5. WSI FOVY
|
nRowIdx++;
|
strItemText.Format(_T("%.3lf"), pWSIInfo->GetWSIFOVY());
|
m_ctrlGridWSIInfo.SetItemText(nRowIdx, nColIdx, strItemText);
|
|
// 5. WSI °Å´ë°áÇÔ ½ºÄµ ¹æÇâ
|
nRowIdx++;
|
strItemText.Format(_T("%d"), pWSIInfo->GetWSIScanDir());
|
m_ctrlGridWSIInfo.SetItemText(nRowIdx, nColIdx, strItemText);
|
|
nColIdx++;
|
}
|
}
|
|
void CDlgSystemWSI::ResetWSIInfoGrid()
|
{
|
int i, j, nRowIdx, nColIdx;
|
CString strItemText;
|
|
nRowIdx = 0;
|
nColIdx = 0;
|
strItemText = _T("");
|
|
for(i = 0; i < m_nWSICount; i++)
|
{
|
nRowIdx = 1;
|
nColIdx++;
|
|
for(j = 0; j < WSI_INFO_GRID_ROW_COUNT - 1; j++)
|
{
|
m_ctrlGridWSIInfo.SetItemText(nRowIdx++, nColIdx, strItemText);
|
}
|
}
|
}
|
void CDlgSystemWSI::ChangeWSICountWSIInfoGridControl()
|
{
|
int i, j, nRowIdx, nColIdx;
|
int nWidth, nMargin, nDataColumnWidth;
|
CString strTemp;
|
CRect rect;
|
|
m_ctrlGridWSIInfo.GetWindowRect(&rect);
|
m_ctrlGridWSIInfo.SetColumnCount(m_nWSICount + 1);
|
nWidth = m_ctrlGridWSIInfo.GetColumnWidth(0);
|
|
nMargin = 5;
|
nDataColumnWidth = rect.Width() - nWidth - nMargin;
|
|
if(m_nWSICount > 0)
|
{
|
GV_ITEM Item;
|
CStringArray strArrayOption;
|
CGridCellCombo* pCellCombo = NULL;
|
nColIdx = 1;
|
nDataColumnWidth = nDataColumnWidth / m_nWSICount;
|
|
for(i = 0; i < m_nWSICount; i++)
|
{
|
m_ctrlGridWSIInfo.SetColumnWidth(i + 1, nDataColumnWidth);
|
|
//WSI À妽º
|
nRowIdx = 0;
|
Item.mask = GVIF_TEXT;
|
Item.row = nRowIdx;
|
Item.col = nColIdx;
|
strTemp.Format(_T("%02d"), i);
|
Item.strText = strTemp;
|
m_ctrlGridWSIInfo.SetItem(&Item);
|
|
// 1. ÄÁÆ®·Ñ·¯ ŸÀÔ
|
nRowIdx++;
|
strArrayOption.RemoveAll();
|
for(j = 0; j < WsiController_Count; j++)
|
{
|
switch(j)
|
{
|
case WsiController_Simulation:
|
strTemp.Format(_T("DIT Simulation"));
|
break;
|
|
case WsiController_Dit:
|
strTemp.Format(_T("DIT WSI"));
|
break;
|
|
default:
|
strTemp.Format(_T(""));
|
break;
|
}
|
|
strArrayOption.Add(strTemp);
|
}
|
m_ctrlGridWSIInfo.SetCellType(nRowIdx, nColIdx, RUNTIME_CLASS(CGridCellCombo));
|
pCellCombo = (CGridCellCombo*)m_ctrlGridWSIInfo.GetCell(nRowIdx, nColIdx);
|
pCellCombo->SetOptions(strArrayOption);
|
pCellCombo->SetStyle(CBS_DROPDOWN);
|
|
nColIdx++;
|
}
|
}
|
}
|
|
void CDlgSystemWSI::OnBnClickedButtonSysSystemAfmReset()
|
{
|
ResetWSIInfoGrid();
|
}
|
|
void CDlgSystemWSI::OnBnClickedButtonSysSystemAfmApply()
|
{
|
UpdateData(TRUE);
|
|
CReviewSystemSettingDlg* pDlg = (CReviewSystemSettingDlg*)AfxGetMainWnd();
|
if (pDlg==NULL) return;
|
|
CHeaderInfo *pHeaderInfo = pDlg->GetSys_HeaderInfo(m_nGantryIdx, m_nHeaderIdx);
|
if (pHeaderInfo==NULL) return;
|
|
CStringArray strArrayOption;
|
CString strItemText = _T("");
|
int nColIdx = 1;
|
int nWSICount = pHeaderInfo->GetWsiInfoCount();
|
|
for(int i=0; i<nWSICount; i++)
|
{
|
int nRowIdx = 1;
|
CWsiControlInfo* pWSIInfo = pHeaderInfo->GetWsiInfo(i);
|
|
pWSIInfo->Reset();
|
|
// 1. ÄÁÆ®·Ñ·¯ ŸÀÔ
|
CGridCellCombo *pCellCombo = (CGridCellCombo*)m_ctrlGridWSIInfo.GetCell(nRowIdx, nColIdx);
|
if(pCellCombo)
|
{
|
strArrayOption.RemoveAll();
|
strItemText = pCellCombo->GetText();
|
pCellCombo->GetOptions(strArrayOption);
|
|
int nArrayCount = (int)strArrayOption.GetCount();
|
|
for(int j=0; j<nArrayCount; j++)
|
{
|
CString strTemp = strArrayOption.GetAt(j);
|
if(strTemp.Compare(strItemText) == 0)
|
{
|
pWSIInfo->SetControllerType(j);
|
break;
|
}
|
}
|
}
|
|
// 2. ¿¬°á Á¤º¸
|
nRowIdx++;
|
strItemText = m_ctrlGridWSIInfo.GetItemText(nRowIdx, nColIdx);
|
pWSIInfo->SetConnectionPort(strItemText);
|
|
// 3. ¿ÀÇÁ¼Â X
|
nRowIdx++;
|
strItemText = m_ctrlGridWSIInfo.GetItemText(nRowIdx, nColIdx);
|
pWSIInfo->SetOffsetX(_tcstod(strItemText, NULL));
|
|
// 4. ¿ÀÇÁ¼Â Y
|
nRowIdx++;
|
strItemText = m_ctrlGridWSIInfo.GetItemText(nRowIdx, nColIdx);
|
pWSIInfo->SetOffsetY(_tcstod(strItemText, NULL));
|
|
// 5.WSI FOV X
|
nRowIdx++;
|
strItemText = m_ctrlGridWSIInfo.GetItemText(nRowIdx, nColIdx);
|
pWSIInfo->SetWSIFOVX(_tcstod(strItemText, NULL));
|
|
// 6.WSI FOV Y
|
nRowIdx++;
|
strItemText = m_ctrlGridWSIInfo.GetItemText(nRowIdx, nColIdx);
|
pWSIInfo->SetWSIFOVY(_tcstod(strItemText, NULL));
|
|
// 7. °Å´ë°áÇÔ ½ºÄµ ¹æÇâ
|
nRowIdx++;
|
strItemText = m_ctrlGridWSIInfo.GetItemText(nRowIdx, nColIdx);
|
pWSIInfo->SetWSIScanDir(_tcstod(strItemText, NULL));
|
|
|
nColIdx++;
|
}
|
}
|
BOOL CDlgSystemWSI::OnInitDialog()
|
{
|
CDialog::OnInitDialog();
|
|
// TODO: ¿©±â¿¡ Ãß°¡ ÃʱâÈ ÀÛ¾÷À» Ãß°¡ÇÕ´Ï´Ù.
|
InitWSIInfoGridControl();
|
FillWSIInfo();
|
|
return TRUE; // return TRUE unless you set the focus to a control
|
// ¿¹¿Ü: OCX ¼Ó¼º ÆäÀÌÁö´Â FALSE¸¦ ¹ÝÈ¯ÇØ¾ß ÇÕ´Ï´Ù.
|
}
|