// DlgAlign.cpp : ±¸Çö ÆÄÀÏÀÔ´Ï´Ù.
|
//
|
|
#include "stdafx.h"
|
#include "ReviewRecipeEditor.h"
|
#include "DlgAlign.h"
|
#include "ReviewRecipeEditorDlg.h"
|
#include "CHCommonControls/GridCellButton.h"
|
// CDlgAlign ´ëÈ »óÀÚÀÔ´Ï´Ù.
|
#include "CHImageControls/CHImageView.h"
|
#include "CHImageControls/CHImageProcess.h"
|
|
using namespace CHImageControls;
|
|
IMPLEMENT_DYNAMIC(CDlgAlign, CDialog)
|
|
CDlgAlign::CDlgAlign(CWnd* pParent /*=NULL*/)
|
: CDialog(CDlgAlign::IDD, pParent)
|
{
|
m_pFirstView = new CCHImageView(this);
|
m_pSecondView = new CCHImageView(this);
|
/*< LYW 20211012 - #3671 ADD Start >*/
|
m_pFirstAssistantView = new CCHImageView(this);
|
m_pSecondAssistantView = new CCHImageView(this);
|
/*< LYW 20211012 - #3671 ADD End >*/
|
}
|
|
CDlgAlign::~CDlgAlign()
|
{
|
if (m_pFirstView)
|
{
|
delete m_pFirstView;
|
m_pFirstView = NULL;
|
}
|
|
if (m_pSecondView)
|
{
|
delete m_pSecondView;
|
m_pSecondView = NULL;
|
}
|
/*< LYW 20211012 - #3671 ADD Start >*/
|
if (m_pFirstAssistantView)
|
{
|
delete m_pFirstAssistantView;
|
m_pFirstAssistantView = NULL;
|
}
|
|
if (m_pSecondAssistantView)
|
{
|
delete m_pSecondAssistantView;
|
m_pSecondAssistantView = NULL;
|
}
|
/*< LYW 20211012 - #3671 ADD End >*/
|
}
|
|
void CDlgAlign::DoDataExchange(CDataExchange* pDX)
|
{
|
CDialog::DoDataExchange(pDX);
|
DDX_Control(pDX, IDC_GRID_RCP_ALIGN_FIND_INFO, m_ctrlGridAlignFindInfo);
|
DDX_Control(pDX, IDC_GRID_RCP_ALIGN_LIGHT_INFO, m_ctrlGridAlignLightInfo);
|
DDX_Control(pDX, IDC_GRID_RCP_ALIGN_AUTO_INFO, m_ctrlGridAlignAutoInfo);
|
DDX_Control(pDX, IDC_GRID_RCP_ALIGN_ROTATE_INFO, m_ctrlGridAlignRotateInfo);
|
|
DDX_Control(pDX, IDC_GRID_RCP_ALIGN_IMAGE_INFO, m_ctrlGridAlignImageInfo);
|
|
DDX_Control(pDX, IDC_CHECK_AUTO_PROCESS, m_ctrlCheckAutoProcess);
|
DDX_Control(pDX, IDC_CHECK_MANUAL_PROCESS, m_ctrlCheckManualProcess);
|
DDX_Control(pDX, IDC_CHECK_ROTATE_PROCESS, m_ctrlCheckRotateProcess);
|
DDX_Control(pDX, IDC_CHECK_IMAGE_PROCESS, m_ctrlCheckImageProcess);
|
DDX_Control(pDX, IDC_CHECK_EDGE_PROCESS, m_ctrlEdgeProcess);
|
DDX_Control(pDX, IDC_CHECK_EDGEALIGN_PROCESS, m_ctrlCheckEdgeAlignProcess);
|
DDX_Control(pDX, IDC_CHECK_ALIGN_SKIP, m_ctrlCheckAlignSkip);
|
DDX_Control(pDX, IDC_CHECK_TOTALPITCHMEASRE, m_ctrlTotalPitchMeasure);
|
}
|
|
|
BEGIN_MESSAGE_MAP(CDlgAlign, CDialog)
|
ON_BN_CLICKED(IDC_BUTTON_RCP_ALIGN_RESET, &CDlgAlign::OnBnClickedButtonRcpAlignReset)
|
ON_BN_CLICKED(IDC_BUTTON_RCP_ALIGN_APPLY, &CDlgAlign::OnBnClickedButtonRcpAlignApply)
|
ON_NOTIFY(NM_CLICK, IDC_GRID_RCP_ALIGN_IMAGE_INFO, &CDlgAlign::OnClickImageInfo)
|
ON_BN_CLICKED(IDC_BUTTON1, &CDlgAlign::OnBnClickedButton1)
|
ON_BN_CLICKED(IDC_BUTTON_RCP_FIND_TEST, &CDlgAlign::OnBnClickedButtonRcpFindTest)
|
END_MESSAGE_MAP()
|
|
|
|
|
void CDlgAlign::OnClickImageInfo(NMHDR *pNotifyStruct, LRESULT* pResult)
|
{
|
NM_GRIDVIEW* pItem = (NM_GRIDVIEW*) pNotifyStruct;
|
if (pItem==NULL) return;
|
|
if (pItem->iColumn!=2) return;
|
int nIdx = pItem->iRow;
|
|
//À̰Թ¹Áö??? chm190811chm
|
//if (nIdx<0 || nIdx>1) return;
|
|
CString szFilter = _T("BMP Files(*.bmp)|*.bmp||");
|
|
CString strPath;
|
CFileDialog dlg(TRUE, NULL, NULL, OFN_HIDEREADONLY, szFilter);
|
dlg.m_ofn.lpstrTitle = _T("Select Align Image");
|
dlg.m_ofn.lpstrInitialDir = ALIGN_IMAGE_PATH;
|
|
if(dlg.DoModal() == IDOK)
|
{
|
CString strFilepath = dlg.GetPathName();
|
CString strFilename = dlg.GetFileName();
|
|
if (nIdx==0 && m_pFirstView->LoadImage(strFilepath))
|
{
|
m_pFirstView->Invalidate(TRUE);
|
}
|
else if (nIdx==1 && m_pSecondView->LoadImage(strFilepath))
|
{
|
m_pSecondView->Invalidate(TRUE);
|
}
|
/*< LYW 20211012 - #3671 ADD Start >*/
|
else if (nIdx == 2 && m_pFirstAssistantView->LoadImage(strFilepath))
|
{
|
m_pFirstAssistantView->Invalidate(TRUE);
|
}
|
else if (nIdx == 3 && m_pSecondAssistantView->LoadImage(strFilepath))
|
{
|
m_pSecondAssistantView->Invalidate(TRUE);
|
}
|
/*< LYW 20211012 - #3671 ADD End >*/
|
|
|
m_ctrlGridAlignImageInfo.SetItemText(nIdx, 1, strFilename);
|
m_ctrlGridAlignImageInfo.Invalidate(TRUE);
|
}
|
}
|
|
// CDlgAlign ¸Þ½ÃÁö 󸮱âÀÔ´Ï´Ù.
|
|
BOOL CDlgAlign::OnInitDialog()
|
{
|
CDialog::OnInitDialog();
|
|
// TODO: ¿©±â¿¡ Ãß°¡ ÃʱâÈ ÀÛ¾÷À» Ãß°¡ÇÕ´Ï´Ù.
|
InitAlignFindInfoGridControl();
|
FillAlignFindInfo();
|
InitAlignLightInfoGridControl();
|
FillAlignLightInfo();
|
InitAlignAutoInfoGridControl();
|
FillAlignAutoInfo();
|
InitAlignRotateInfoGridControl();
|
FillAlignRotateInfo();
|
|
InitAlignImageInfoGridControl();
|
FillAlignImageInfo();
|
|
if (m_pFirstView)
|
{
|
CRect rect;
|
rect.left = 10;
|
rect.top = 550;
|
rect.right = rect.left + 150;
|
rect.bottom = rect.top + 150;
|
|
m_pFirstView->Create(NULL, NULL, WS_CHILD | WS_VISIBLE | LBS_NOTIFY , rect, this, 0);
|
m_pFirstView->SetDrawType(DrawFit);
|
m_pFirstView->SetViewName(_T("First"));
|
m_pFirstView->ShowWindow(SW_SHOW);
|
|
}
|
|
if (m_pSecondView)
|
{
|
CRect rect;
|
rect.left = 161;
|
rect.top = 550;
|
rect.right = rect.left + 150;
|
rect.bottom = rect.top + 150;
|
|
m_pSecondView->Create(NULL, NULL, WS_CHILD | WS_VISIBLE | LBS_NOTIFY , rect, this, 0);
|
m_pSecondView->SetDrawType(DrawFit);
|
m_pSecondView->SetViewName(_T("Second"));
|
m_pSecondView->ShowWindow(SW_SHOW);
|
}
|
|
/*< LYW 20211012 - #3671 ADD Start >*/
|
if (m_pFirstAssistantView)
|
{
|
CRect rect;
|
rect.left = 10;
|
rect.top = 701;
|
rect.right = rect.left + 150;
|
rect.bottom = rect.top + 150;
|
|
m_pFirstAssistantView->Create(NULL, NULL, WS_CHILD | WS_VISIBLE | LBS_NOTIFY, rect, this, 0);
|
m_pFirstAssistantView->SetDrawType(DrawFit);
|
m_pFirstAssistantView->SetViewName(_T("FirstAssistant"));
|
m_pFirstAssistantView->ShowWindow(SW_SHOW);
|
}
|
|
if (m_pSecondAssistantView)
|
{
|
CRect rect;
|
rect.left = 161;
|
rect.top = 701;
|
rect.right = rect.left + 150;
|
rect.bottom = rect.top + 150;
|
|
m_pSecondAssistantView->Create(NULL, NULL, WS_CHILD | WS_VISIBLE | LBS_NOTIFY, rect, this, 0);
|
m_pSecondAssistantView->SetDrawType(DrawFit);
|
m_pSecondAssistantView->SetViewName(_T("SecondAssistant"));
|
m_pSecondAssistantView->ShowWindow(SW_SHOW);
|
}
|
/*< LYW 20211012 - #3671 ADD End >*/
|
|
return TRUE; // return TRUE unless you set the focus to a control
|
// ¿¹¿Ü: OCX ¼Ó¼º ÆäÀÌÁö´Â FALSE¸¦ ¹ÝÈ¯ÇØ¾ß ÇÕ´Ï´Ù.
|
}
|
|
BOOL CDlgAlign::PreTranslateMessage(MSG* pMsg)
|
{
|
// TODO: ¿©±â¿¡ Ư¼öÈµÈ Äڵ带 Ãß°¡ ¹×/¶Ç´Â ±âº» Ŭ·¡½º¸¦ È£ÃâÇÕ´Ï´Ù.
|
if( pMsg->message == WM_KEYDOWN )
|
{
|
if(pMsg->wParam == VK_RETURN || pMsg->wParam == VK_ESCAPE )
|
{
|
::TranslateMessage(pMsg);
|
::DispatchMessage(pMsg);
|
return TRUE;
|
}
|
}
|
|
return CDialog::PreTranslateMessage(pMsg);
|
}
|
|
|
void CDlgAlign::OnBnClickedButtonRcpAlignReset()
|
{
|
// TODO: ¿©±â¿¡ ÄÁÆ®·Ñ ¾Ë¸² 󸮱â Äڵ带 Ãß°¡ÇÕ´Ï´Ù.
|
int i, nRowIdx, nColIdx;
|
CString strItemText;
|
|
nRowIdx = 1;
|
strItemText = _T("");
|
|
nColIdx = 0;
|
for(i = 0; i < ALIGN_FIND_INFO_GRID_COL_COUNT; i++)
|
{
|
m_ctrlGridAlignFindInfo.SetItemText(nRowIdx, nColIdx++, strItemText);
|
}
|
m_ctrlGridAlignFindInfo.Invalidate(FALSE);
|
|
nColIdx = 0;
|
for(i = 0; i < ALIGN_LIGHT_INFO_GRID_COL_COUNT; i++)
|
{
|
m_ctrlGridAlignLightInfo.SetItemText(nRowIdx, nColIdx++, strItemText);
|
}
|
m_ctrlGridAlignLightInfo.Invalidate(FALSE);
|
|
for(i = 1; i < ALIGN_AUTO_INFO_GRID_ROW_COUNT; i++)
|
{
|
for (int j=1; j<ALIGN_AUTO_INFO_GRID_COL_COUNT; j++)
|
m_ctrlGridAlignAutoInfo.SetItemText(i, j, strItemText);
|
}
|
m_ctrlGridAlignAutoInfo.Invalidate(FALSE);
|
|
nColIdx = 0;
|
for(i = 0; i < ALIGN_ROTATE_INFO_GRID_ROW_COUNT; i++)
|
{
|
m_ctrlGridAlignRotateInfo.SetItemText(1, nColIdx++, strItemText);
|
}
|
m_ctrlGridAlignRotateInfo.Invalidate(FALSE);
|
|
m_ctrlCheckAutoProcess.SetCheck(FALSE);
|
m_ctrlCheckManualProcess.SetCheck(FALSE);
|
m_ctrlCheckRotateProcess.SetCheck(FALSE);
|
m_ctrlCheckImageProcess.SetCheck(FALSE);
|
m_ctrlCheckEdgeAlignProcess.SetCheck(FALSE);
|
m_ctrlCheckAlignSkip.SetCheck(FALSE);
|
m_ctrlTotalPitchMeasure.SetCheck(FALSE);
|
|
}
|
|
void CDlgAlign::OnBnClickedButtonRcpAlignApply()
|
{
|
// TODO: ¿©±â¿¡ ÄÁÆ®·Ñ ¾Ë¸² 󸮱â Äڵ带 Ãß°¡ÇÕ´Ï´Ù.
|
UpdateData(TRUE);
|
|
int nRowIdx, nColIdx;
|
CString strItemText;
|
CRcp_RsAlignManager* pRcpRsAlignManager = NULL;
|
CReviewRecipeEditorDlg* pDlg = (CReviewRecipeEditorDlg*)AfxGetMainWnd();
|
if(pDlg == NULL) return;
|
|
|
pRcpRsAlignManager = pDlg->GetRsAlignManager();
|
if(pRcpRsAlignManager == NULL) return;
|
|
|
nRowIdx = 1;
|
nColIdx = 0;
|
|
//¹®Åΰª
|
strItemText = m_ctrlGridAlignFindInfo.GetItemText(nRowIdx, nColIdx++);
|
pRcpRsAlignManager->GetRsRcpAlignInfo()->m_nEdgeWidth = _ttoi(strItemText);
|
|
//¹®Åΰª
|
strItemText = m_ctrlGridAlignFindInfo.GetItemText(nRowIdx, nColIdx++);
|
pRcpRsAlignManager->GetRsRcpAlignInfo()->m_nEdgeHeight = _ttoi(strItemText);
|
|
//¹®Åΰª
|
strItemText = m_ctrlGridAlignFindInfo.GetItemText(nRowIdx, nColIdx++);
|
pRcpRsAlignManager->GetRsRcpAlignInfo()->m_nEdgeThreshold = _ttoi(strItemText);
|
|
//º´ÇհŸ®
|
strItemText = m_ctrlGridAlignFindInfo.GetItemText(nRowIdx, nColIdx++);
|
pRcpRsAlignManager->GetRsRcpAlignInfo()->m_nMergeRange = _ttoi(strItemText);
|
|
//¸ÅĪ·ü
|
strItemText = m_ctrlGridAlignFindInfo.GetItemText(nRowIdx, nColIdx++);
|
pRcpRsAlignManager->GetRsRcpAlignInfo()->m_dEdgeRate = _tcstod(strItemText, NULL);
|
|
pRcpRsAlignManager->GetRsRcpAlignInfo()->m_bUseEdge = m_ctrlEdgeProcess.GetCheck();
|
|
nColIdx = 0;
|
|
//first
|
strItemText = m_ctrlGridAlignLightInfo.GetItemText(nRowIdx, nColIdx++);
|
pRcpRsAlignManager->GetRsRcpAlignInfo()->m_dFirstCamExposure = _tcstod(strItemText, NULL);
|
|
//second
|
strItemText = m_ctrlGridAlignLightInfo.GetItemText(nRowIdx, nColIdx++);
|
pRcpRsAlignManager->GetRsRcpAlignInfo()->m_dSecondCamExposure = _tcstod(strItemText, NULL);
|
|
pRcpRsAlignManager->GetRsRcpAlignInfo()->m_bManualProcess = m_ctrlCheckManualProcess.GetCheck();
|
|
|
nRowIdx = 1;
|
nColIdx = 1;
|
strItemText = m_ctrlGridAlignAutoInfo.GetItemText(nRowIdx, nColIdx++);
|
pRcpRsAlignManager->GetRsRcpAlignInfo()->m_dTargetMin = _tcstod(strItemText, NULL);
|
|
strItemText = m_ctrlGridAlignAutoInfo.GetItemText(nRowIdx, nColIdx++);
|
pRcpRsAlignManager->GetRsRcpAlignInfo()->m_dTargetMax = _tcstod(strItemText, NULL);
|
|
nRowIdx = 2;
|
nColIdx = 1;
|
strItemText = m_ctrlGridAlignAutoInfo.GetItemText(nRowIdx, nColIdx++);
|
pRcpRsAlignManager->GetRsRcpAlignInfo()->m_dExposureMin = _tcstod(strItemText, NULL);
|
|
strItemText = m_ctrlGridAlignAutoInfo.GetItemText(nRowIdx, nColIdx++);
|
pRcpRsAlignManager->GetRsRcpAlignInfo()->m_dExposureMax = _tcstod(strItemText, NULL);
|
|
pRcpRsAlignManager->GetRsRcpAlignInfo()->m_bAutoProcess = m_ctrlCheckAutoProcess.GetCheck();
|
|
pRcpRsAlignManager->GetRsRcpAlignInfo()->m_bEdgeAlignProcess = m_ctrlCheckEdgeAlignProcess.GetCheck();
|
|
nColIdx = 0;
|
nRowIdx = 1;
|
strItemText = m_ctrlGridAlignRotateInfo.GetItemText(nRowIdx, nColIdx++);
|
pRcpRsAlignManager->GetRsRcpAlignInfo()->m_nRetryCount = _ttoi(strItemText);
|
|
strItemText = m_ctrlGridAlignRotateInfo.GetItemText(nRowIdx, nColIdx++);
|
pRcpRsAlignManager->GetRsRcpAlignInfo()->m_dGlassAngleMin = _tcstod(strItemText, NULL);
|
|
strItemText = m_ctrlGridAlignRotateInfo.GetItemText(nRowIdx, nColIdx++);
|
pRcpRsAlignManager->GetRsRcpAlignInfo()->m_dGlassAngleMax = _tcstod(strItemText, NULL);
|
|
pRcpRsAlignManager->GetRsRcpAlignInfo()->m_bRotateProcess = m_ctrlCheckRotateProcess.GetCheck();
|
|
nColIdx = 1;
|
nRowIdx = 0;
|
pRcpRsAlignManager->GetRsRcpAlignInfo()->m_strFirstImageFile = m_ctrlGridAlignImageInfo.GetItemText(nRowIdx, nColIdx);
|
nRowIdx++;
|
pRcpRsAlignManager->GetRsRcpAlignInfo()->m_strSecondImageFile = m_ctrlGridAlignImageInfo.GetItemText(nRowIdx, nColIdx);
|
nRowIdx++;
|
/*< LYW 20211012 - #3671 ADD Start >*/
|
pRcpRsAlignManager->GetRsRcpAlignInfo()->m_strFirstAssistantImageFile = m_ctrlGridAlignImageInfo.GetItemText(nRowIdx, nColIdx);
|
nRowIdx++;
|
pRcpRsAlignManager->GetRsRcpAlignInfo()->m_strSecondAssistantImageFile = m_ctrlGridAlignImageInfo.GetItemText(nRowIdx, nColIdx);
|
nRowIdx++;
|
/*< LYW 20211012 - #3671 ADD End >*/
|
|
strItemText = m_ctrlGridAlignImageInfo.GetItemText(nRowIdx, nColIdx);
|
pRcpRsAlignManager->GetRsRcpAlignInfo()->m_dMatchingRate = _tcstod(strItemText, NULL);
|
nRowIdx++;
|
pRcpRsAlignManager->GetRsRcpAlignInfo()->m_strTotalPitchImageFile = m_ctrlGridAlignImageInfo.GetItemText(nRowIdx, nColIdx);
|
|
|
pRcpRsAlignManager->GetRsRcpAlignInfo()->m_bUseImage = m_ctrlCheckImageProcess.GetCheck();
|
|
pRcpRsAlignManager->GetRsRcpAlignInfo()->m_bAlignSkipMode = m_ctrlCheckAlignSkip.GetCheck();
|
|
pRcpRsAlignManager->GetRsRcpAlignInfo()->m_bTotalPitchMeasure = m_ctrlTotalPitchMeasure.GetCheck();
|
}
|
|
void CDlgAlign::InitAlignFindInfoGridControl()
|
{
|
int nRowIdx, nColIdx, nRows, nCols, nFixRows, nDataColumnWidth, nMargin;
|
CString strTemp;
|
CRect rect;
|
|
nRows = ALIGN_FIND_INFO_GRID_ROW_COUNT;
|
nCols = ALIGN_FIND_INFO_GRID_COL_COUNT;
|
nFixRows = 1;
|
nRowIdx = 0;
|
nColIdx = 0;
|
|
m_ctrlGridAlignFindInfo.GetWindowRect(&rect);
|
m_ctrlGridAlignFindInfo.GetDefaultCell(FALSE, FALSE)->SetBackClr(RGB(0xFF, 0xFF, 0xE0));
|
m_ctrlGridAlignFindInfo.SetRowCount(nRows);
|
m_ctrlGridAlignFindInfo.SetColumnCount(nCols);
|
m_ctrlGridAlignFindInfo.SetFixedRowCount(nFixRows);
|
|
nMargin = 5;
|
nDataColumnWidth = (rect.Width() - nMargin) / ALIGN_FIND_INFO_GRID_COL_COUNT;
|
|
GV_ITEM Item;
|
|
Item.mask = GVIF_TEXT;
|
Item.row = nRowIdx;
|
Item.col = nColIdx;
|
strTemp.Format(_T("Width(pxl)"));//_T("¹®Åΰª"));
|
Item.strText = strTemp;
|
m_ctrlGridAlignFindInfo.SetItem(&Item);
|
m_ctrlGridAlignFindInfo.SetColumnWidth(nColIdx, nDataColumnWidth);
|
|
nColIdx++;
|
Item.row = nRowIdx;
|
Item.col = nColIdx;
|
strTemp.Format(_T("Height(pxl)"));//_T("¹®Åΰª"));
|
Item.strText = strTemp;
|
m_ctrlGridAlignFindInfo.SetItem(&Item);
|
m_ctrlGridAlignFindInfo.SetColumnWidth(nColIdx, nDataColumnWidth);
|
|
nColIdx++;
|
Item.row = nRowIdx;
|
Item.col = nColIdx;
|
strTemp.Format(_T("Edge Thres(0~255)"));//_T("¹®Åΰª"));
|
Item.strText = strTemp;
|
m_ctrlGridAlignFindInfo.SetItem(&Item);
|
m_ctrlGridAlignFindInfo.SetColumnWidth(nColIdx, nDataColumnWidth);
|
|
nColIdx++;
|
Item.row = nRowIdx;
|
Item.col = nColIdx;
|
strTemp.Format(_T("Merge Dist(pxl)"));//_T("º´ÇհŸ®"));
|
Item.strText = strTemp;
|
m_ctrlGridAlignFindInfo.SetItem(&Item);
|
m_ctrlGridAlignFindInfo.SetColumnWidth(nColIdx, nDataColumnWidth);
|
|
nColIdx++;
|
Item.row = nRowIdx;
|
Item.col = nColIdx;
|
strTemp.Format(_T("Edge Rate(0~1)"));//_T("¸ÅĪ·ü"));
|
Item.strText = strTemp;
|
m_ctrlGridAlignFindInfo.SetItem(&Item);
|
m_ctrlGridAlignFindInfo.SetColumnWidth(nColIdx, nDataColumnWidth);
|
}
|
|
void CDlgAlign::FillAlignFindInfo()
|
{
|
int nRowIdx, nColIdx;
|
CString strItemText;
|
CRcp_RsAlignManager* pRcpRsAlignManager = NULL;
|
CReviewRecipeEditorDlg* pDlg = (CReviewRecipeEditorDlg*)AfxGetMainWnd();
|
if(pDlg == NULL) return;
|
|
|
pRcpRsAlignManager = pDlg->GetRsAlignManager();
|
if(pRcpRsAlignManager == NULL) return;
|
|
|
nRowIdx = 1;
|
nColIdx = 0;
|
|
// use edge
|
m_ctrlEdgeProcess.SetCheck(pRcpRsAlignManager->GetRsRcpAlignInfo()->m_bUseEdge);
|
|
// width
|
strItemText.Format(_T("%d"), pRcpRsAlignManager->GetRsRcpAlignInfo()->m_nEdgeWidth);
|
m_ctrlGridAlignFindInfo.SetItemText(nRowIdx, nColIdx++, strItemText);
|
|
// height
|
strItemText.Format(_T("%d"), pRcpRsAlignManager->GetRsRcpAlignInfo()->m_nEdgeHeight);
|
m_ctrlGridAlignFindInfo.SetItemText(nRowIdx, nColIdx++, strItemText);
|
//¹®Åΰª
|
strItemText.Format(_T("%d"), pRcpRsAlignManager->GetRsRcpAlignInfo()->m_nEdgeThreshold);
|
m_ctrlGridAlignFindInfo.SetItemText(nRowIdx, nColIdx++, strItemText);
|
|
//º´ÇհŸ®
|
strItemText.Format(_T("%d"), pRcpRsAlignManager->GetRsRcpAlignInfo()->m_nMergeRange);
|
m_ctrlGridAlignFindInfo.SetItemText(nRowIdx, nColIdx++, strItemText);
|
|
//¸ÅĪ·ü
|
strItemText.Format(_T("%.03lf"), pRcpRsAlignManager->GetRsRcpAlignInfo()->m_dEdgeRate);
|
m_ctrlGridAlignFindInfo.SetItemText(nRowIdx, nColIdx++, strItemText);
|
|
|
m_ctrlGridAlignFindInfo.Invalidate(FALSE);
|
}
|
|
void CDlgAlign::InitAlignLightInfoGridControl()
|
{
|
int nRowIdx, nColIdx, nRows, nCols, nFixRows, nDataColumnWidth, nMargin;
|
CString strTemp;
|
CRect rect;
|
|
nRows = ALIGN_LIGHT_INFO_GRID_ROW_COUNT;
|
nCols = ALIGN_LIGHT_INFO_GRID_COL_COUNT;
|
nFixRows = 1;
|
nRowIdx = 0;
|
nColIdx = 0;
|
|
m_ctrlGridAlignLightInfo.GetWindowRect(&rect);
|
m_ctrlGridAlignLightInfo.GetDefaultCell(FALSE, FALSE)->SetBackClr(RGB(0xFF, 0xFF, 0xE0));
|
m_ctrlGridAlignLightInfo.SetRowCount(nRows);
|
m_ctrlGridAlignLightInfo.SetColumnCount(nCols);
|
m_ctrlGridAlignLightInfo.SetFixedRowCount(nFixRows);
|
|
nMargin = 5;
|
nDataColumnWidth = (rect.Width() - nMargin) / ALIGN_LIGHT_INFO_GRID_COL_COUNT;
|
|
GV_ITEM Item;
|
|
Item.mask = GVIF_TEXT;
|
Item.row = nRowIdx;
|
Item.col = nColIdx;
|
//strTemp.Format(_T("FirstCam Exposure Time (usec)"));
|
strTemp.Format(_T("FirstCam Light Level (0 ~ 255)"));
|
Item.strText = strTemp;
|
m_ctrlGridAlignLightInfo.SetItem(&Item);
|
m_ctrlGridAlignLightInfo.SetColumnWidth(nColIdx, nDataColumnWidth);
|
|
nColIdx++;
|
Item.row = nRowIdx;
|
Item.col = nColIdx;
|
//strTemp.Format(_T("SecondCam Exposure Time (usec)"));
|
strTemp.Format(_T("SecondCam Light Level (0 ~ 255)"));
|
Item.strText = strTemp;
|
m_ctrlGridAlignLightInfo.SetItem(&Item);
|
m_ctrlGridAlignLightInfo.SetColumnWidth(nColIdx, nDataColumnWidth);
|
}
|
|
void CDlgAlign::FillAlignLightInfo()
|
{
|
int nRowIdx, nColIdx;
|
CString strItemText;
|
CRcp_RsAlignManager* pRcpRsAlignManager = NULL;
|
CReviewRecipeEditorDlg* pDlg = (CReviewRecipeEditorDlg*)AfxGetMainWnd();
|
if(pDlg == NULL) return;
|
|
|
pRcpRsAlignManager = pDlg->GetRsAlignManager();
|
if(pRcpRsAlignManager == NULL) return;
|
|
|
nRowIdx = 1;
|
nColIdx = 0;
|
|
strItemText.Format(_T("%.3lf"), pRcpRsAlignManager->GetRsRcpAlignInfo()->m_dFirstCamExposure);
|
m_ctrlGridAlignLightInfo.SetItemText(nRowIdx, nColIdx++, strItemText);
|
|
strItemText.Format(_T("%.3lf"), pRcpRsAlignManager->GetRsRcpAlignInfo()->m_dSecondCamExposure);
|
m_ctrlGridAlignLightInfo.SetItemText(nRowIdx, nColIdx++, strItemText);
|
|
m_ctrlCheckManualProcess.SetCheck(pRcpRsAlignManager->GetRsRcpAlignInfo()->m_bManualProcess);
|
|
|
m_ctrlGridAlignFindInfo.Invalidate(FALSE);
|
}
|
|
|
void CDlgAlign::InitAlignImageInfoGridControl()
|
{
|
int nRowIdx, nColIdx, nRows, nCols, nFixCols, nDataColumnWidth, nMargin;
|
CString strTemp;
|
CRect rect;
|
|
nRows = ALIGN_IMAGE_INFO_GRID_ROW_COUNT;
|
nCols = ALIGN_IMAGE_INFO_GRID_COL_COUNT;
|
nFixCols = 1;
|
|
nRowIdx = 0;
|
nColIdx = 0;
|
|
m_ctrlGridAlignImageInfo.GetWindowRect(&rect);
|
m_ctrlGridAlignImageInfo.GetDefaultCell(FALSE, FALSE)->SetBackClr(RGB(0xFF, 0xFF, 0xE0));
|
m_ctrlGridAlignImageInfo.SetRowCount(nRows);
|
m_ctrlGridAlignImageInfo.SetColumnCount(nCols);
|
m_ctrlGridAlignImageInfo.SetFixedColumnCount(nFixCols);
|
//m_ctrlGridAlignImageInfo.SetEditable(FALSE);
|
|
nMargin = 5;
|
nDataColumnWidth = (rect.Width() - nMargin) / ALIGN_IMAGE_INFO_GRID_COL_COUNT;
|
|
GV_ITEM Item;
|
|
Item.mask = GVIF_TEXT;
|
|
nColIdx;
|
Item.row = nRowIdx;
|
Item.col = nColIdx;
|
strTemp.Format(_T("First Mark"));
|
Item.strText = strTemp;
|
m_ctrlGridAlignImageInfo.SetItem(&Item);
|
|
nRowIdx++;
|
Item.row = nRowIdx;
|
Item.col = nColIdx;
|
strTemp.Format(_T("Second Mark"));
|
Item.strText = strTemp;
|
m_ctrlGridAlignImageInfo.SetItem(&Item);
|
|
/*< LYW 20211012 - #3671 ADD Start >*/
|
nRowIdx++;
|
Item.row = nRowIdx;
|
Item.col = nColIdx;
|
strTemp.Format(_T("1st Assist Mark"));
|
Item.strText = strTemp;
|
m_ctrlGridAlignImageInfo.SetItem(&Item);
|
|
nRowIdx++;
|
Item.row = nRowIdx;
|
Item.col = nColIdx;
|
strTemp.Format(_T("2nd Assist Mark"));
|
Item.strText = strTemp;
|
m_ctrlGridAlignImageInfo.SetItem(&Item);
|
/*< LYW 20211012 - #3671 ADD End >*/
|
|
nRowIdx++;
|
Item.row = nRowIdx;
|
Item.col = nColIdx;
|
strTemp.Format(_T("Matching Rate"));
|
Item.strText = strTemp;
|
m_ctrlGridAlignImageInfo.SetItem(&Item);
|
|
nRowIdx++;
|
Item.row = nRowIdx;
|
Item.col = nColIdx;
|
strTemp.Format(_T("TotalPitch"));
|
Item.strText = strTemp;
|
m_ctrlGridAlignImageInfo.SetItem(&Item);
|
|
|
|
m_ctrlGridAlignImageInfo.SetColumnWidth(0, 100);
|
m_ctrlGridAlignImageInfo.SetColumnWidth(1, 280);
|
m_ctrlGridAlignImageInfo.SetColumnWidth(2, 80);
|
}
|
|
void CDlgAlign::FillAlignImageInfo()
|
{
|
|
int nRowIdx, nColIdx;
|
CString strItemText;
|
CRcp_RsAlignManager* pRcpRsAlignManager = NULL;
|
CReviewRecipeEditorDlg* pDlg = (CReviewRecipeEditorDlg*)AfxGetMainWnd();
|
if(pDlg == NULL) return;
|
|
pRcpRsAlignManager = pDlg->GetRsAlignManager();
|
if(pRcpRsAlignManager == NULL) return;
|
|
// first
|
nRowIdx = 0;
|
nColIdx = 1;
|
strItemText = pRcpRsAlignManager->GetRsRcpAlignInfo()->m_strFirstImageFile;
|
m_ctrlGridAlignImageInfo.SetItemText(nRowIdx, nColIdx, strItemText);
|
|
CString strFilename = ALIGN_IMAGE_PATH;
|
strFilename = strFilename + _T("\\") + strItemText;
|
m_pFirstView->LoadImage(strFilename);
|
/*m_pFirstView->Invalidate(TRUE);*/
|
|
nColIdx = 2;
|
m_ctrlGridAlignImageInfo.SetCellType(nRowIdx, nColIdx, RUNTIME_CLASS(CGridCellButton));
|
CGridCellButton *pCellButton = (CGridCellButton*)m_ctrlGridAlignImageInfo.GetCell(nRowIdx, nColIdx);
|
pCellButton->SetText(_T("Browser"));
|
|
// second
|
nRowIdx = 1;
|
nColIdx = 1;
|
strItemText = pRcpRsAlignManager->GetRsRcpAlignInfo()->m_strSecondImageFile;
|
m_ctrlGridAlignImageInfo.SetItemText(nRowIdx, nColIdx, strItemText);
|
strFilename = ALIGN_IMAGE_PATH;
|
strFilename = strFilename + _T("\\") + strItemText;
|
m_pSecondView->LoadImage(strFilename);
|
//m_pSecondView->Invalidate(TRUE);
|
|
nColIdx = 2;
|
m_ctrlGridAlignImageInfo.SetCellType(nRowIdx, nColIdx, RUNTIME_CLASS(CGridCellButton));
|
pCellButton = (CGridCellButton*)m_ctrlGridAlignImageInfo.GetCell(nRowIdx, nColIdx);
|
pCellButton->SetText(_T("Browser"));
|
|
/*< LYW 20211012 - #3671 ADD Start >*/
|
// first Assistant
|
nRowIdx = 2;
|
nColIdx = 1;
|
strItemText = pRcpRsAlignManager->GetRsRcpAlignInfo()->m_strFirstAssistantImageFile;
|
m_ctrlGridAlignImageInfo.SetItemText(nRowIdx, nColIdx, strItemText);
|
|
strFilename = ALIGN_IMAGE_PATH;
|
strFilename = strFilename + _T("\\") + strItemText;
|
m_pFirstAssistantView->LoadImage(strFilename);
|
/*m_pFirstView->Invalidate(TRUE);*/
|
|
nColIdx = 2;
|
m_ctrlGridAlignImageInfo.SetCellType(nRowIdx, nColIdx, RUNTIME_CLASS(CGridCellButton));
|
pCellButton = (CGridCellButton*)m_ctrlGridAlignImageInfo.GetCell(nRowIdx, nColIdx);
|
pCellButton->SetText(_T("Browser"));
|
|
// second Assistant
|
nRowIdx = 3;
|
nColIdx = 1;
|
strItemText = pRcpRsAlignManager->GetRsRcpAlignInfo()->m_strSecondAssistantImageFile;
|
m_ctrlGridAlignImageInfo.SetItemText(nRowIdx, nColIdx, strItemText);
|
strFilename = ALIGN_IMAGE_PATH;
|
strFilename = strFilename + _T("\\") + strItemText;
|
m_pSecondAssistantView->LoadImage(strFilename);
|
//m_pSecondView->Invalidate(TRUE);
|
|
nColIdx = 2;
|
m_ctrlGridAlignImageInfo.SetCellType(nRowIdx, nColIdx, RUNTIME_CLASS(CGridCellButton));
|
pCellButton = (CGridCellButton*)m_ctrlGridAlignImageInfo.GetCell(nRowIdx, nColIdx);
|
pCellButton->SetText(_T("Browser"));
|
/*< LYW 20211012 - #3671 ADD End >*/
|
//
|
|
nRowIdx = 4;
|
nColIdx = 1;
|
strItemText.Format(_T("%.3lf"), pRcpRsAlignManager->GetRsRcpAlignInfo()->m_dMatchingRate);
|
m_ctrlGridAlignImageInfo.SetItemText(nRowIdx, nColIdx, strItemText);
|
|
//
|
nRowIdx = 5;
|
nColIdx = 1;
|
strItemText = pRcpRsAlignManager->GetRsRcpAlignInfo()->m_strTotalPitchImageFile;
|
m_ctrlGridAlignImageInfo.SetItemText(nRowIdx, nColIdx, strItemText);
|
|
strFilename = ALIGN_IMAGE_PATH;
|
strFilename = strFilename + _T("\\") + strItemText;
|
|
//m_pFirstView->LoadImage(strFilename);
|
/*m_pFirstView->Invalidate(TRUE);*/
|
|
nColIdx = 2;
|
m_ctrlGridAlignImageInfo.SetCellType(nRowIdx, nColIdx, RUNTIME_CLASS(CGridCellButton));
|
pCellButton = (CGridCellButton*)m_ctrlGridAlignImageInfo.GetCell(nRowIdx, nColIdx);
|
pCellButton->SetText(_T("Browser"));
|
|
|
m_ctrlCheckImageProcess.SetCheck(pRcpRsAlignManager->GetRsRcpAlignInfo()->m_bUseImage);
|
|
m_ctrlCheckAlignSkip.SetCheck(pRcpRsAlignManager->GetRsRcpAlignInfo()->m_bAlignSkipMode);
|
|
m_ctrlTotalPitchMeasure.SetCheck(pRcpRsAlignManager->GetRsRcpAlignInfo()->m_bTotalPitchMeasure);
|
}
|
|
|
void CDlgAlign::InitAlignRotateInfoGridControl()
|
{
|
int nRowIdx, nColIdx, nRows, nCols, nFixRows, nDataColumnWidth, nMargin;
|
CString strTemp;
|
CRect rect;
|
|
nRows = ALIGN_ROTATE_INFO_GRID_ROW_COUNT;
|
nCols = ALIGN_ROTATE_INFO_GRID_COL_COUNT;
|
nFixRows = 1;
|
nRowIdx = 0;
|
nColIdx = 0;
|
|
m_ctrlGridAlignRotateInfo.GetWindowRect(&rect);
|
m_ctrlGridAlignRotateInfo.GetDefaultCell(FALSE, FALSE)->SetBackClr(RGB(0xFF, 0xFF, 0xE0));
|
m_ctrlGridAlignRotateInfo.SetRowCount(nRows);
|
m_ctrlGridAlignRotateInfo.SetColumnCount(nCols);
|
m_ctrlGridAlignRotateInfo.SetFixedRowCount(nFixRows);
|
|
nMargin = 5;
|
nDataColumnWidth = (rect.Width() - nMargin) / ALIGN_ROTATE_INFO_GRID_COL_COUNT;
|
|
GV_ITEM Item;
|
|
Item.mask = GVIF_TEXT;
|
|
nColIdx;
|
Item.row = nRowIdx;
|
Item.col = nColIdx;
|
strTemp.Format(_T("Retry Count (ea)"));
|
Item.strText = strTemp;
|
m_ctrlGridAlignRotateInfo.SetItem(&Item);
|
m_ctrlGridAlignRotateInfo.SetColumnWidth(nColIdx, nDataColumnWidth);
|
|
nColIdx++;
|
Item.row = nRowIdx;
|
Item.col = nColIdx;
|
strTemp.Format(_T("Min Angle (degree)"));
|
Item.strText = strTemp;
|
m_ctrlGridAlignRotateInfo.SetItem(&Item);
|
m_ctrlGridAlignRotateInfo.SetColumnWidth(nColIdx, nDataColumnWidth);
|
|
nColIdx++;
|
Item.row = nRowIdx;
|
Item.col = nColIdx;
|
strTemp.Format(_T("Max Angle (degree)"));
|
Item.strText = strTemp;
|
m_ctrlGridAlignRotateInfo.SetItem(&Item);
|
m_ctrlGridAlignRotateInfo.SetColumnWidth(nColIdx, nDataColumnWidth);
|
}
|
|
void CDlgAlign::FillAlignRotateInfo()
|
{
|
int nRowIdx, nColIdx;
|
CString strItemText;
|
CRcp_RsAlignManager* pRcpRsAlignManager = NULL;
|
CReviewRecipeEditorDlg* pDlg = (CReviewRecipeEditorDlg*)AfxGetMainWnd();
|
if(pDlg == NULL) return;
|
|
|
pRcpRsAlignManager = pDlg->GetRsAlignManager();
|
if(pRcpRsAlignManager == NULL) return;
|
|
nRowIdx = 1;
|
nColIdx = 0;
|
|
strItemText.Format(_T("%d"), pRcpRsAlignManager->GetRsRcpAlignInfo()->m_nRetryCount);
|
m_ctrlGridAlignRotateInfo.SetItemText(nRowIdx, nColIdx++, strItemText);
|
|
strItemText.Format(_T("%.08lf"), pRcpRsAlignManager->GetRsRcpAlignInfo()->m_dGlassAngleMin);
|
m_ctrlGridAlignRotateInfo.SetItemText(nRowIdx, nColIdx++, strItemText);
|
|
strItemText.Format(_T("%.08lf"), pRcpRsAlignManager->GetRsRcpAlignInfo()->m_dGlassAngleMax);
|
m_ctrlGridAlignRotateInfo.SetItemText(nRowIdx, nColIdx++, strItemText);
|
|
m_ctrlCheckRotateProcess.SetCheck(pRcpRsAlignManager->GetRsRcpAlignInfo()->m_bRotateProcess);
|
|
|
m_ctrlGridAlignRotateInfo.Invalidate(FALSE);
|
}
|
|
|
void CDlgAlign::InitAlignAutoInfoGridControl()
|
{
|
int nRowIdx, nColIdx, nRows, nCols, nFixRows, nDataColumnWidth, nMargin;
|
CString strTemp;
|
CRect rect;
|
|
nRows = ALIGN_AUTO_INFO_GRID_ROW_COUNT;
|
nCols = ALIGN_AUTO_INFO_GRID_COL_COUNT;
|
nFixRows = 1;
|
nRowIdx = 0;
|
nColIdx = 0;
|
|
m_ctrlGridAlignAutoInfo.GetWindowRect(&rect);
|
m_ctrlGridAlignAutoInfo.GetDefaultCell(FALSE, FALSE)->SetBackClr(RGB(0xFF, 0xFF, 0xE0));
|
m_ctrlGridAlignAutoInfo.SetRowCount(nRows);
|
m_ctrlGridAlignAutoInfo.SetColumnCount(nCols);
|
m_ctrlGridAlignAutoInfo.SetFixedRowCount(nFixRows);
|
m_ctrlGridAlignAutoInfo.SetFixedColumnCount(1);
|
|
nMargin = 5;
|
nDataColumnWidth = (rect.Width() - nMargin) / ALIGN_AUTO_INFO_GRID_COL_COUNT;
|
|
GV_ITEM Item;
|
|
Item.mask = GVIF_TEXT;
|
Item.row = nRowIdx;
|
Item.col = nColIdx;
|
strTemp.Format(_T(""));
|
Item.strText = strTemp;
|
m_ctrlGridAlignAutoInfo.SetItem(&Item);
|
m_ctrlGridAlignAutoInfo.SetColumnWidth(nColIdx, nDataColumnWidth);
|
|
nColIdx++;
|
Item.row = nRowIdx;
|
Item.col = nColIdx;
|
strTemp.Format(_T("MIN Value"));
|
Item.strText = strTemp;
|
m_ctrlGridAlignAutoInfo.SetItem(&Item);
|
m_ctrlGridAlignAutoInfo.SetColumnWidth(nColIdx, nDataColumnWidth);
|
|
nColIdx++;
|
Item.row = nRowIdx;
|
Item.col = nColIdx;
|
strTemp.Format(_T("MAX Value"));
|
Item.strText = strTemp;
|
m_ctrlGridAlignAutoInfo.SetItem(&Item);
|
m_ctrlGridAlignAutoInfo.SetColumnWidth(nColIdx, nDataColumnWidth);
|
|
|
nRowIdx++;
|
nColIdx = 0;
|
Item.row = nRowIdx;
|
Item.col = nColIdx;
|
strTemp.Format(_T("Light Target (gLevel)"));
|
Item.strText = strTemp;
|
m_ctrlGridAlignAutoInfo.SetItem(&Item);
|
m_ctrlGridAlignAutoInfo.SetColumnWidth(nColIdx, nDataColumnWidth);
|
|
|
nRowIdx++;
|
Item.row = nRowIdx;
|
Item.col = nColIdx;
|
//strTemp.Format(_T("Exposure Time (usec)"));
|
strTemp.Format(_T("Light Level (0 ~ 255)"));
|
Item.strText = strTemp;
|
m_ctrlGridAlignAutoInfo.SetItem(&Item);
|
m_ctrlGridAlignAutoInfo.SetColumnWidth(nColIdx, nDataColumnWidth);
|
}
|
|
void CDlgAlign::FillAlignAutoInfo()
|
{
|
int nRowIdx, nColIdx;
|
CString strItemText;
|
CRcp_RsAlignManager* pRcpRsAlignManager = NULL;
|
CReviewRecipeEditorDlg* pDlg = (CReviewRecipeEditorDlg*)AfxGetMainWnd();
|
if(pDlg == NULL) return;
|
|
|
pRcpRsAlignManager = pDlg->GetRsAlignManager();
|
if(pRcpRsAlignManager == NULL) return;
|
|
|
nRowIdx = 1;
|
nColIdx = 1;
|
strItemText.Format(_T("%.3lf"), pRcpRsAlignManager->GetRsRcpAlignInfo()->m_dTargetMin);
|
m_ctrlGridAlignAutoInfo.SetItemText(nRowIdx, nColIdx++, strItemText);
|
|
|
strItemText.Format(_T("%.3lf"), pRcpRsAlignManager->GetRsRcpAlignInfo()->m_dTargetMax);
|
m_ctrlGridAlignAutoInfo.SetItemText(nRowIdx, nColIdx++, strItemText);
|
|
nRowIdx = 2;
|
nColIdx = 1;
|
strItemText.Format(_T("%.3lf"), pRcpRsAlignManager->GetRsRcpAlignInfo()->m_dExposureMin);
|
m_ctrlGridAlignAutoInfo.SetItemText(nRowIdx, nColIdx++, strItemText);
|
|
strItemText.Format(_T("%.3lf"), pRcpRsAlignManager->GetRsRcpAlignInfo()->m_dExposureMax);
|
m_ctrlGridAlignAutoInfo.SetItemText(nRowIdx, nColIdx++, strItemText);
|
|
m_ctrlCheckAutoProcess.SetCheck(pRcpRsAlignManager->GetRsRcpAlignInfo()->m_bAutoProcess);
|
|
m_ctrlCheckEdgeAlignProcess.SetCheck(pRcpRsAlignManager->GetRsRcpAlignInfo()->m_bEdgeAlignProcess);
|
|
m_ctrlGridAlignAutoInfo.Invalidate(FALSE);
|
}
|
|
|
void CDlgAlign::UpdateDialogData()
|
{
|
FillAlignFindInfo();
|
FillAlignLightInfo();
|
FillAlignAutoInfo();
|
FillAlignRotateInfo();
|
FillAlignImageInfo();
|
|
Invalidate(FALSE);
|
}
|
|
|
void CDlgAlign::OnBnClickedButton1()
|
{
|
// TODO: ¿©±â¿¡ ÄÁÆ®·Ñ ¾Ë¸² 󸮱â Äڵ带 Ãß°¡ÇÕ´Ï´Ù.
|
|
}
|
|
|
void CDlgAlign::OnBnClickedButtonRcpFindTest()
|
{
|
// TODO: ¿©±â¿¡ ÄÁÆ®·Ñ ¾Ë¸² 󸮱â Äڵ带 Ãß°¡ÇÕ´Ï´Ù.
|
}
|