// DlgSignalReadData.cpp : ±¸Çö ÆÄÀÏÀÔ´Ï´Ù.
|
//
|
|
#include "stdafx.h"
|
#include "ReviewSystemSetting.h"
|
#include "DlgSignalReadData.h"
|
#include "ReviewSystemSettingDlg.h"
|
|
enum GlassDataType { GLASS_DATA_GLASS_ID = 0,
|
GLASS_DATA_LOT_ID,
|
GLASS_DATA_SLOT_NUM,
|
GLASS_DATA_STEP_ID,
|
GLASS_DATA_PPID,
|
GLASS_DATA_FLOW_ID,
|
GLASS_DATA_TYPE_COUNT };
|
|
enum GlassDataSize { GLASS_SIZE_GLASS_ID = 8,
|
GLASS_SIZE_LOT_ID = 8,
|
GLASS_SIZE_SLOT_NUM = 1,
|
GLASS_SIZE_STEP_ID = 4,
|
GLASS_SIZE_PPID = 10,
|
GLASS_SIZE_FLOW_ID = 10 };
|
|
// [2017:1:9]-[WEZASW] : PLC GlassData Ç׸ñ ÀçÁ¤ÀÇ.(ING)
|
enum GlassDataTypeB7 { B7_GLASS_DATA_LOT_ID = 0,
|
B7_GLASS_DATA_GLASS_ID,
|
B7_GLASS_DATA_OPER_ID,
|
B7_GLASS_DATA_GLASS_CODE,
|
B7_GLASS_DATA_PPID,
|
B7_GLASS_DATA_TYPE_COUNT };
|
|
enum GlassDataSizeB7 { B7_GLASS_SIZE_LOT_ID = 10,
|
B7_GLASS_SIZE_GLASS_ID = 10,
|
B7_GLASS_SIZE_OPER_ID = 5,
|
B7_GLASS_SIZE_GLASS_CODE = 2,
|
B7_GLASS_SIZE_PPID = 20 };
|
|
// CDlgSignalReadData ´ëÈ »óÀÚÀÔ´Ï´Ù.
|
|
IMPLEMENT_DYNAMIC(CDlgSignalReadData, CDialog)
|
|
CDlgSignalReadData::CDlgSignalReadData(CWnd* pParent /*=NULL*/)
|
: CDialog(CDlgSignalReadData::IDD, pParent)
|
, m_nSignalReadDataCount(SIGNAL_READ_DATA_INFO_GRID_DEFAULT_ROW_COUNT)
|
{
|
|
}
|
|
CDlgSignalReadData::~CDlgSignalReadData()
|
{
|
}
|
|
void CDlgSignalReadData::DoDataExchange(CDataExchange* pDX)
|
{
|
CDialog::DoDataExchange(pDX);
|
DDX_Text(pDX, IDC_EDIT_SYS_SIGNAL_READ_DATA_COUNT, m_nSignalReadDataCount);
|
DDX_Control(pDX, IDC_CHECK_SYS_SIGNAL_READ_DATA_USE_CONSECUTIVE_ADDRESS, m_ctrlButtonUseConsecutiveAddress);
|
DDX_Control(pDX, IDC_GRID_SIGNAL_READ_DATA_INFO, m_ctrlGridSignalReadDataInfo);
|
}
|
|
|
BEGIN_MESSAGE_MAP(CDlgSignalReadData, CDialog)
|
ON_EN_CHANGE(IDC_EDIT_SYS_SIGNAL_READ_DATA_COUNT, &CDlgSignalReadData::OnEnChangeEditSysSignalReadDataCount)
|
END_MESSAGE_MAP()
|
|
|
// CDlgSignalReadData ¸Þ½ÃÁö 󸮱âÀÔ´Ï´Ù.
|
|
BOOL CDlgSignalReadData::OnInitDialog()
|
{
|
CDialog::OnInitDialog();
|
|
// TODO: ¿©±â¿¡ Ãß°¡ ÃʱâÈ ÀÛ¾÷À» Ãß°¡ÇÕ´Ï´Ù.
|
InitSignalReadDataInfoGridControl();
|
FillSignalReadDataInfo();
|
|
return TRUE; // return TRUE unless you set the focus to a control
|
// ¿¹¿Ü: OCX ¼Ó¼º ÆäÀÌÁö´Â FALSE¸¦ ¹ÝÈ¯ÇØ¾ß ÇÕ´Ï´Ù.
|
}
|
|
BOOL CDlgSignalReadData::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 CDlgSignalReadData::InitSignalReadDataInfoGridControl()
|
{
|
int nRowIdx, nColIdx, nRows, nCols, nFixRows, nFixCols;
|
int nMargin, nDefaultColumnWidth;
|
CString strTemp;
|
CRect rect;
|
|
m_ctrlGridSignalReadDataInfo.GetWindowRect(&rect);
|
nMargin = 5;
|
nDefaultColumnWidth = (rect.Width() - nMargin) / (SIGNAL_READ_DATA_INFO_GRID_COL_COUNT + 1);
|
|
nRows = m_nSignalReadDataCount + 1;
|
nCols = SIGNAL_READ_DATA_INFO_GRID_COL_COUNT;
|
nFixRows = 1;
|
nFixCols = 1;
|
nRowIdx = 0;
|
nColIdx = 0;
|
|
m_ctrlGridSignalReadDataInfo.GetDefaultCell(FALSE, FALSE)->SetBackClr(RGB(0xFF, 0xFF, 0xE0));
|
m_ctrlGridSignalReadDataInfo.SetRowCount(nRows);
|
m_ctrlGridSignalReadDataInfo.SetColumnCount(nCols);
|
m_ctrlGridSignalReadDataInfo.SetFixedRowCount(nFixRows);
|
m_ctrlGridSignalReadDataInfo.SetFixedColumnCount(nFixCols);
|
|
GV_ITEM Item;
|
|
Item.mask = GVIF_TEXT;
|
Item.row = nRowIdx;
|
Item.col = nColIdx;
|
strTemp.Format(_T("Index"));//_T("À妽º"));
|
Item.strText = strTemp;
|
m_ctrlGridSignalReadDataInfo.SetColumnWidth(nColIdx++, nDefaultColumnWidth);
|
m_ctrlGridSignalReadDataInfo.SetItem(&Item);
|
|
Item.row = nRowIdx;
|
Item.col = nColIdx;
|
strTemp.Format(_T("Item"));//_T("¾ÆÀÌÅÛ"));
|
Item.strText = strTemp;
|
m_ctrlGridSignalReadDataInfo.SetColumnWidth(nColIdx++, nDefaultColumnWidth * 2);
|
m_ctrlGridSignalReadDataInfo.SetItem(&Item);
|
|
Item.row = nRowIdx;
|
Item.col = nColIdx;
|
strTemp.Format(_T("Size"));//_T("Å©±â"));
|
Item.strText = strTemp;
|
m_ctrlGridSignalReadDataInfo.SetColumnWidth(nColIdx++, nDefaultColumnWidth);
|
m_ctrlGridSignalReadDataInfo.SetItem(&Item);
|
|
Item.row = nRowIdx;
|
Item.col = nColIdx;
|
strTemp.Format(_T("Address"));//_T("ÁÖ¼Ò"));
|
Item.strText = strTemp;
|
m_ctrlGridSignalReadDataInfo.SetColumnWidth(nColIdx++, nDefaultColumnWidth);
|
m_ctrlGridSignalReadDataInfo.SetItem(&Item);
|
}
|
|
void CDlgSignalReadData::FillSignalReadDataInfo()
|
{
|
CReviewSystemSettingDlg* pDlg = (CReviewSystemSettingDlg*)AfxGetMainWnd();
|
if (pDlg==NULL) return;
|
|
CSignalControlInfo *pSignalInfo = pDlg->GetSys_SignalInfo();
|
if (pSignalInfo==NULL) return;
|
|
CString strItemText = _T("");
|
int nSignalReadDataCount = pSignalInfo->GetReadDataAddressCount();
|
|
if(nSignalReadDataCount > 0)
|
{
|
int nRowIdx = 1;
|
m_nSignalReadDataCount = nSignalReadDataCount;
|
|
UpdateData(FALSE);
|
OnEnChangeEditSysSignalReadDataCount();
|
|
BOOL bUseConsecutiveAddress = pSignalInfo->GetUseContinuousReadAddress();
|
m_ctrlButtonUseConsecutiveAddress.SetCheck(bUseConsecutiveAddress);
|
|
for(int i=0; i<nSignalReadDataCount; i++)
|
{
|
SSignalSettingData *pReadDataInfo = pSignalInfo->GetReadDataAddress(i);
|
if (pReadDataInfo==NULL) continue;
|
|
//1. ¾ÆÀÌÅÛ
|
int nColIdx = 1;
|
strItemText.Format(_T("%s"), pReadDataInfo->strName);
|
m_ctrlGridSignalReadDataInfo.SetItemText(nRowIdx, nColIdx, strItemText);
|
|
//2. Å©±â
|
nColIdx++;
|
strItemText.Format(_T("%d"), pReadDataInfo->nSize);
|
m_ctrlGridSignalReadDataInfo.SetItemText(nRowIdx, nColIdx, strItemText);
|
|
//3. ÁÖ¼Ò
|
nColIdx++;
|
strItemText.Format(_T("%s"), pReadDataInfo->strAddr);
|
m_ctrlGridSignalReadDataInfo.SetItemText(nRowIdx, nColIdx, strItemText);
|
|
nRowIdx++;
|
}
|
}
|
else
|
{
|
ResetSignalReadDataInfoGrid();
|
}
|
}
|
|
void CDlgSignalReadData::ResetSignalReadDataInfoGrid()
|
{
|
int i, nRowIdx, nColIdx;
|
CString strItemText;
|
|
m_nSignalReadDataCount = SIGNAL_READ_DATA_INFO_GRID_DEFAULT_ROW_COUNT;
|
UpdateData(FALSE);
|
OnEnChangeEditSysSignalReadDataCount();
|
|
nRowIdx = 1;
|
m_ctrlButtonUseConsecutiveAddress.SetCheck(FALSE);
|
|
for(i = 0; i < SIGNAL_READ_DATA_INFO_GRID_DEFAULT_ROW_COUNT; i++)
|
{
|
nColIdx = 1;
|
|
// [2017:1:9]-[WEZASW] : PLC GlassData Ç׸ñ ÀçÁ¤ÀÇ.(ING)
|
switch(i)
|
{
|
case B7_GLASS_DATA_LOT_ID:
|
strItemText = _T("LOT_ID");
|
m_ctrlGridSignalReadDataInfo.SetItemText(nRowIdx, nColIdx++, strItemText);
|
strItemText.Format(_T("%d"), B7_GLASS_SIZE_LOT_ID);
|
m_ctrlGridSignalReadDataInfo.SetItemText(nRowIdx, nColIdx++, strItemText);
|
break;
|
case B7_GLASS_DATA_GLASS_ID:
|
strItemText = _T("GLASS_ID");
|
m_ctrlGridSignalReadDataInfo.SetItemText(nRowIdx, nColIdx++, strItemText);
|
strItemText.Format(_T("%d"), B7_GLASS_SIZE_GLASS_ID);
|
m_ctrlGridSignalReadDataInfo.SetItemText(nRowIdx, nColIdx++, strItemText);
|
break;
|
case B7_GLASS_DATA_OPER_ID:
|
strItemText = _T("OPER_ID");
|
m_ctrlGridSignalReadDataInfo.SetItemText(nRowIdx, nColIdx++, strItemText);
|
strItemText.Format(_T("%d"), B7_GLASS_SIZE_OPER_ID);
|
m_ctrlGridSignalReadDataInfo.SetItemText(nRowIdx, nColIdx++, strItemText);
|
break;
|
case B7_GLASS_DATA_GLASS_CODE:
|
strItemText = _T("GLASS_CODE");
|
m_ctrlGridSignalReadDataInfo.SetItemText(nRowIdx, nColIdx++, strItemText);
|
strItemText.Format(_T("%d"), B7_GLASS_SIZE_GLASS_CODE);
|
m_ctrlGridSignalReadDataInfo.SetItemText(nRowIdx, nColIdx++, strItemText);
|
break;
|
case B7_GLASS_DATA_PPID:
|
strItemText = _T("PPID");
|
m_ctrlGridSignalReadDataInfo.SetItemText(nRowIdx, nColIdx++, strItemText);
|
strItemText.Format(_T("%d"), B7_GLASS_SIZE_PPID);
|
m_ctrlGridSignalReadDataInfo.SetItemText(nRowIdx, nColIdx++, strItemText);
|
break;
|
default:
|
strItemText = _T("");
|
m_ctrlGridSignalReadDataInfo.SetItemText(nRowIdx, nColIdx++, strItemText);
|
m_ctrlGridSignalReadDataInfo.SetItemText(nRowIdx, nColIdx++, strItemText);
|
break;
|
}
|
|
/*
|
switch(i)
|
{
|
case GLASS_DATA_GLASS_ID:
|
strItemText = _T("GLASS_ID");
|
m_ctrlGridSignalReadDataInfo.SetItemText(nRowIdx, nColIdx++, strItemText);
|
strItemText.Format(_T("%d"), GLASS_SIZE_GLASS_ID);
|
m_ctrlGridSignalReadDataInfo.SetItemText(nRowIdx, nColIdx++, strItemText);
|
break;
|
case GLASS_DATA_LOT_ID:
|
strItemText = _T("LOT_ID");
|
m_ctrlGridSignalReadDataInfo.SetItemText(nRowIdx, nColIdx++, strItemText);
|
strItemText.Format(_T("%d"), GLASS_SIZE_LOT_ID);
|
m_ctrlGridSignalReadDataInfo.SetItemText(nRowIdx, nColIdx++, strItemText);
|
break;
|
case GLASS_DATA_SLOT_NUM:
|
strItemText = _T("SLOT_NUM");
|
m_ctrlGridSignalReadDataInfo.SetItemText(nRowIdx, nColIdx++, strItemText);
|
strItemText.Format(_T("%d"), GLASS_SIZE_SLOT_NUM);
|
m_ctrlGridSignalReadDataInfo.SetItemText(nRowIdx, nColIdx++, strItemText);
|
break;
|
case GLASS_DATA_STEP_ID:
|
strItemText = _T("STEP_ID");
|
m_ctrlGridSignalReadDataInfo.SetItemText(nRowIdx, nColIdx++, strItemText);
|
strItemText.Format(_T("%d"), GLASS_SIZE_STEP_ID);
|
m_ctrlGridSignalReadDataInfo.SetItemText(nRowIdx, nColIdx++, strItemText);
|
break;
|
case GLASS_DATA_PPID:
|
strItemText = _T("PPID");
|
m_ctrlGridSignalReadDataInfo.SetItemText(nRowIdx, nColIdx++, strItemText);
|
strItemText.Format(_T("%d"), GLASS_SIZE_PPID);
|
m_ctrlGridSignalReadDataInfo.SetItemText(nRowIdx, nColIdx++, strItemText);
|
break;
|
case GLASS_DATA_FLOW_ID:
|
strItemText = _T("FLOW_ID");
|
m_ctrlGridSignalReadDataInfo.SetItemText(nRowIdx, nColIdx++, strItemText);
|
strItemText.Format(_T("%d"), GLASS_SIZE_FLOW_ID);
|
m_ctrlGridSignalReadDataInfo.SetItemText(nRowIdx, nColIdx++, strItemText);
|
break;
|
default:
|
strItemText = _T("");
|
m_ctrlGridSignalReadDataInfo.SetItemText(nRowIdx, nColIdx++, strItemText);
|
m_ctrlGridSignalReadDataInfo.SetItemText(nRowIdx, nColIdx++, strItemText);
|
break;
|
}
|
*/
|
nRowIdx++;
|
}
|
}
|
|
void CDlgSignalReadData::UpdateDialogData()
|
{
|
FillSignalReadDataInfo();
|
Invalidate(TRUE);
|
}
|
|
void CDlgSignalReadData::GetSignalReadData(CSignalControlInfo &signalInfo)
|
{
|
UpdateData(TRUE);
|
|
signalInfo.SetUseContinuousReadAddress(m_ctrlButtonUseConsecutiveAddress.GetCheck());
|
|
CString strItemText = _T("");
|
|
signalInfo.SetReadDataAddressCount(0);
|
|
int nRowIdx = 1;
|
for(int i=0; i<m_nSignalReadDataCount; i++)
|
{
|
int nColIdx = 1;
|
|
SSignalSettingData data;
|
|
data.nIndex = i;
|
|
strItemText = m_ctrlGridSignalReadDataInfo.GetItemText(nRowIdx, nColIdx++);
|
data.strName = strItemText;
|
|
strItemText = m_ctrlGridSignalReadDataInfo.GetItemText(nRowIdx, nColIdx++);
|
data.nSize = _ttoi(strItemText);
|
|
strItemText = m_ctrlGridSignalReadDataInfo.GetItemText(nRowIdx, nColIdx++);
|
data.strAddr = strItemText;
|
|
signalInfo.SetReadDataAddress(data);
|
|
nRowIdx++;
|
}
|
}
|
|
void CDlgSignalReadData::OnEnChangeEditSysSignalReadDataCount()
|
{
|
// TODO: RICHEDIT ÄÁÆ®·ÑÀÎ °æ¿ì, ÀÌ ÄÁÆ®·ÑÀº
|
// CDialog::OnInitDialog() ÇÔ¼ö¸¦ ÀçÁöÁ¤
|
//ÇÏ°í ¸¶½ºÅ©¿¡ OR ¿¬»êÇÏ¿© ¼³Á¤µÈ ENM_CHANGE Ç÷¡±×¸¦ ÁöÁ¤ÇÏ¿© CRichEditCtrl().SetEventMask()¸¦ È£ÃâÇÏÁö ¾ÊÀ¸¸é
|
// ÀÌ ¾Ë¸² ¸Þ½ÃÁö¸¦ º¸³»Áö ¾Ê½À´Ï´Ù.
|
|
// TODO: ¿©±â¿¡ ÄÁÆ®·Ñ ¾Ë¸² 󸮱â Äڵ带 Ãß°¡ÇÕ´Ï´Ù.
|
UpdateData(TRUE);
|
|
int i, nRowIdx, nColIdx;
|
int nWidth, nMargin, nDataColumnWidth;
|
CString strTemp;
|
CRect rect;
|
|
m_ctrlGridSignalReadDataInfo.GetWindowRect(&rect);
|
m_ctrlGridSignalReadDataInfo.SetRowCount(m_nSignalReadDataCount + 1);
|
nWidth = m_ctrlGridSignalReadDataInfo.GetColumnWidth(0);
|
|
nMargin = 5;
|
nDataColumnWidth = rect.Width() - nWidth - nMargin;
|
|
if(m_nSignalReadDataCount > 0)
|
{
|
GV_ITEM Item;
|
Item.mask = GVIF_TEXT;
|
nRowIdx = 1;
|
nColIdx = 0;
|
nDataColumnWidth = nDataColumnWidth / m_nSignalReadDataCount;
|
|
for(i = 0; i < m_nSignalReadDataCount; i++)
|
{
|
//À妽º
|
Item.row = nRowIdx++;
|
Item.col = nColIdx;
|
strTemp.Format(_T("%02d"), i);
|
Item.strText = strTemp;
|
m_ctrlGridSignalReadDataInfo.SetItem(&Item);
|
}
|
}
|
}
|