// DlgSignalWriteSignal.cpp : ±¸Çö ÆÄÀÏÀÔ´Ï´Ù. // #include "stdafx.h" #include "ReviewSystemSetting.h" #include "DlgSignalWriteSignal.h" #include "ReviewSystemSettingDlg.h" // CDlgSignalWriteSignal ´ëÈ­ »óÀÚÀÔ´Ï´Ù. IMPLEMENT_DYNAMIC(CDlgSignalWriteSignal, CDialog) CDlgSignalWriteSignal::CDlgSignalWriteSignal(CWnd* pParent /*=NULL*/) : CDialog(CDlgSignalWriteSignal::IDD, pParent) , m_nSignalWriteSignalCount(0) { } CDlgSignalWriteSignal::~CDlgSignalWriteSignal() { } void CDlgSignalWriteSignal::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); DDX_Text(pDX, IDC_EDIT_SYS_SIGNAL_WRITE_SIGNAL_COUNT, m_nSignalWriteSignalCount); DDX_Control(pDX, IDC_CHECK_SYS_SIGNAL_WRITE_SIGNAL_USE_CONSECUTIVE_ADDRESS, m_ctrlButtonUseConsecutiveAddress); DDX_Control(pDX, IDC_GRID_SIGNAL_WRITE_SIGNAL_INFO, m_ctrlGridSignalWriteSignalInfo); } BEGIN_MESSAGE_MAP(CDlgSignalWriteSignal, CDialog) ON_EN_CHANGE(IDC_EDIT_SYS_SIGNAL_WRITE_SIGNAL_COUNT, &CDlgSignalWriteSignal::OnEnChangeEditSysSignalWriteSignalCount) ON_BN_CLICKED(IDC_BUTTON_SYS_SIGNAL_WRITE_ALIGN_ALARM, &CDlgSignalWriteSignal::OnBnClickedButtonSysSignalWriteAlignAlarm) ON_BN_CLICKED(IDC_BUTTON_SYS_SIGNAL_WRITE_NOPPID, &CDlgSignalWriteSignal::OnBnClickedButtonSysSignalWriteNoppid) END_MESSAGE_MAP() // CDlgSignalWriteSignal ¸Þ½ÃÁö 󸮱âÀÔ´Ï´Ù. BOOL CDlgSignalWriteSignal::OnInitDialog() { CDialog::OnInitDialog(); // TODO: ¿©±â¿¡ Ãß°¡ ÃʱâÈ­ ÀÛ¾÷À» Ãß°¡ÇÕ´Ï´Ù. InitSignalWriteSignalInfoGridControl(); FillSignalWriteSignalInfo(); return TRUE; // return TRUE unless you set the focus to a control // ¿¹¿Ü: OCX ¼Ó¼º ÆäÀÌÁö´Â FALSE¸¦ ¹ÝÈ¯ÇØ¾ß ÇÕ´Ï´Ù. } BOOL CDlgSignalWriteSignal::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 CDlgSignalWriteSignal::OnEnChangeEditSysSignalWriteSignalCount() { // 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_ctrlGridSignalWriteSignalInfo.GetWindowRect(&rect); m_ctrlGridSignalWriteSignalInfo.SetRowCount(m_nSignalWriteSignalCount + 1); nWidth = m_ctrlGridSignalWriteSignalInfo.GetColumnWidth(0); nMargin = 5; nDataColumnWidth = rect.Width() - nWidth - nMargin; if(m_nSignalWriteSignalCount > 0) { GV_ITEM Item; Item.mask = GVIF_TEXT; nRowIdx = 1; nColIdx = 0; nDataColumnWidth = nDataColumnWidth / m_nSignalWriteSignalCount; for(i = 0; i < m_nSignalWriteSignalCount; i++) { //À妽º Item.row = nRowIdx++; Item.col = nColIdx; strTemp.Format(_T("%02d"), i); Item.strText = strTemp; m_ctrlGridSignalWriteSignalInfo.SetItem(&Item); } } } void CDlgSignalWriteSignal::InitSignalWriteSignalInfoGridControl() { int nRowIdx, nColIdx, nRows, nCols, nFixRows, nFixCols; int nMargin, nDefaultColumnWidth; CString strTemp; CRect rect; m_ctrlGridSignalWriteSignalInfo.GetWindowRect(&rect); nMargin = 5; nDefaultColumnWidth = (rect.Width() - nMargin) / (SIGNAL_WRITE_SIGNAL_INFO_GRID_COL_COUNT + 1); nRows = m_nSignalWriteSignalCount + 1; nCols = SIGNAL_WRITE_SIGNAL_INFO_GRID_COL_COUNT; nFixRows = 1; nFixCols = 1; nRowIdx = 0; nColIdx = 0; m_ctrlGridSignalWriteSignalInfo.GetDefaultCell(FALSE, FALSE)->SetBackClr(RGB(0xFF, 0xFF, 0xE0)); m_ctrlGridSignalWriteSignalInfo.SetRowCount(nRows); m_ctrlGridSignalWriteSignalInfo.SetColumnCount(nCols); m_ctrlGridSignalWriteSignalInfo.SetFixedRowCount(nFixRows); m_ctrlGridSignalWriteSignalInfo.SetFixedColumnCount(nFixCols); GV_ITEM Item; Item.mask = GVIF_TEXT; Item.row = nRowIdx; Item.col = nColIdx; strTemp.Format(_T("Index"));//_T("À妽º")); Item.strText = strTemp; m_ctrlGridSignalWriteSignalInfo.SetColumnWidth(nColIdx++, nDefaultColumnWidth); m_ctrlGridSignalWriteSignalInfo.SetItem(&Item); Item.row = nRowIdx; Item.col = nColIdx; strTemp.Format(_T("Address"));//_T("ÁÖ¼Ò")); Item.strText = strTemp; m_ctrlGridSignalWriteSignalInfo.SetColumnWidth(nColIdx++, nDefaultColumnWidth * 2); m_ctrlGridSignalWriteSignalInfo.SetItem(&Item); } void CDlgSignalWriteSignal::FillSignalWriteSignalInfo() { CReviewSystemSettingDlg* pDlg = (CReviewSystemSettingDlg*)AfxGetMainWnd(); if (pDlg==NULL) return; CSignalControlInfo* pSignalInfo = pDlg->GetSys_SignalInfo(); if (pSignalInfo==NULL) return; CString strItemText = _T(""); int nSignalWriteDataCount = pSignalInfo->GetSendSignalAddressCount(); if(nSignalWriteDataCount > 0) { int nRowIdx = 1; m_nSignalWriteSignalCount = nSignalWriteDataCount; UpdateData(FALSE); OnEnChangeEditSysSignalWriteSignalCount(); BOOL bUseConsecutiveAddress = pSignalInfo->GetUseContinuousSendAddress(); m_ctrlButtonUseConsecutiveAddress.SetCheck(bUseConsecutiveAddress); for(int i=0; iGetSendSignalAddress(i); if (strSendSignalAddr.Compare(_T(""))==0) continue; //1. ÁÖ¼Ò int nColIdx = 1; strItemText.Format(_T("%s"), strSendSignalAddr); m_ctrlGridSignalWriteSignalInfo.SetItemText(nRowIdx, nColIdx, strItemText); nRowIdx++; } } else { ResetSignalWriteSignalInfoGrid(); } } void CDlgSignalWriteSignal::ResetSignalWriteSignalInfoGrid() { m_nSignalWriteSignalCount = 0; UpdateData(FALSE); OnEnChangeEditSysSignalWriteSignalCount(); m_ctrlButtonUseConsecutiveAddress.SetCheck(FALSE); } void CDlgSignalWriteSignal::UpdateDialogData() { FillSignalWriteSignalInfo(); Invalidate(TRUE); } void CDlgSignalWriteSignal::GetSignalWriteSignal(CSignalControlInfo &signalInfo) { UpdateData(TRUE); signalInfo.SetUseContinuousSendAddress(m_ctrlButtonUseConsecutiveAddress.GetCheck()); signalInfo.SetSendSignalAddressCount(0); signalInfo.SetSendSignalCount(m_nSignalWriteSignalCount); int nRowIdx = 1, nColIdx = 1; CString strItemText = _T(""); CString strAddr = _T(""); for(int i = 0; i < m_nSignalWriteSignalCount; i++) { strItemText = m_ctrlGridSignalWriteSignalInfo.GetItemText(nRowIdx, nColIdx); strAddr = strItemText; signalInfo.SetSendSignalAddress(strAddr); nRowIdx++; } } void CDlgSignalWriteSignal::OnBnClickedButtonSysSignalWriteAlignAlarm() { CReviewSystemSettingDlg* pDlg = (CReviewSystemSettingDlg*)AfxGetMainWnd(); if(pDlg) { COPYDATA_SYSTEM2REV copyData; copyData.Message = MsgSystem2Rev_SendAlignAlarmSignal; pDlg->SendData2ReviewSystem(©Data); } } void CDlgSignalWriteSignal::OnBnClickedButtonSysSignalWriteNoppid() { CReviewSystemSettingDlg* pDlg = (CReviewSystemSettingDlg*)AfxGetMainWnd(); if(pDlg) { COPYDATA_SYSTEM2REV copyData; copyData.Message = MsgSystem2Rev_SendNoPPIDSignal; pDlg->SendData2ReviewSystem(©Data); } }