// 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; iGetReadDataAddress(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 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); } } }