// DlgSignalReadSignal.cpp : ±¸Çö ÆÄÀÏÀÔ´Ï´Ù.
|
//
|
|
#include "stdafx.h"
|
#include "ReviewSystemSetting.h"
|
#include "DlgSignalReadSignal.h"
|
#include "ReviewSystemSettingDlg.h"
|
|
|
// CDlgSignalReadSignal ´ëÈ »óÀÚÀÔ´Ï´Ù.
|
|
IMPLEMENT_DYNAMIC(CDlgSignalReadSignal, CDialog)
|
|
CDlgSignalReadSignal::CDlgSignalReadSignal(CWnd* pParent /*=NULL*/)
|
: CDialog(CDlgSignalReadSignal::IDD, pParent)
|
, m_nSignalReadSignalCount(0)
|
{
|
|
}
|
|
CDlgSignalReadSignal::~CDlgSignalReadSignal()
|
{
|
}
|
|
void CDlgSignalReadSignal::DoDataExchange(CDataExchange* pDX)
|
{
|
CDialog::DoDataExchange(pDX);
|
DDX_Text(pDX, IDC_EDIT_SYS_SIGNAL_READ_SIGNAL_COUNT, m_nSignalReadSignalCount);
|
DDX_Control(pDX, IDC_CHECK_SYS_SIGNAL_READ_SIGNAL_USE_CONSECUTIVE_ADDRESS, m_ctrlButtonUseConsecutiveAddress);
|
DDX_Control(pDX, IDC_GRID_SIGNAL_READ_SIGNAL_INFO, m_ctrlGridSignalReadSignalInfo);
|
}
|
|
|
BEGIN_MESSAGE_MAP(CDlgSignalReadSignal, CDialog)
|
ON_EN_CHANGE(IDC_EDIT_SYS_SIGNAL_READ_SIGNAL_COUNT, &CDlgSignalReadSignal::OnEnChangeEditSysSignalReadSignalCount)
|
END_MESSAGE_MAP()
|
|
|
// CDlgSignalReadSignal ¸Þ½ÃÁö 󸮱âÀÔ´Ï´Ù.
|
|
BOOL CDlgSignalReadSignal::OnInitDialog()
|
{
|
CDialog::OnInitDialog();
|
|
// TODO: ¿©±â¿¡ Ãß°¡ ÃʱâÈ ÀÛ¾÷À» Ãß°¡ÇÕ´Ï´Ù.
|
InitSignalReadSignalInfoGridControl();
|
FillSignalReadSignalInfo();
|
|
return TRUE; // return TRUE unless you set the focus to a control
|
// ¿¹¿Ü: OCX ¼Ó¼º ÆäÀÌÁö´Â FALSE¸¦ ¹ÝÈ¯ÇØ¾ß ÇÕ´Ï´Ù.
|
}
|
|
BOOL CDlgSignalReadSignal::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 CDlgSignalReadSignal::OnEnChangeEditSysSignalReadSignalCount()
|
{
|
// 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_ctrlGridSignalReadSignalInfo.GetWindowRect(&rect);
|
m_ctrlGridSignalReadSignalInfo.SetRowCount(m_nSignalReadSignalCount + 1);
|
nWidth = m_ctrlGridSignalReadSignalInfo.GetColumnWidth(0);
|
|
nMargin = 5;
|
nDataColumnWidth = rect.Width() - nWidth - nMargin;
|
|
if(m_nSignalReadSignalCount > 0)
|
{
|
GV_ITEM Item;
|
Item.mask = GVIF_TEXT;
|
nRowIdx = 1;
|
nColIdx = 0;
|
nDataColumnWidth = nDataColumnWidth / m_nSignalReadSignalCount;
|
|
for(i = 0; i < m_nSignalReadSignalCount; i++)
|
{
|
//À妽º
|
Item.row = nRowIdx++;
|
Item.col = nColIdx;
|
strTemp.Format(_T("%02d"), i);
|
Item.strText = strTemp;
|
m_ctrlGridSignalReadSignalInfo.SetItem(&Item);
|
}
|
}
|
}
|
|
void CDlgSignalReadSignal::InitSignalReadSignalInfoGridControl()
|
{
|
int nRowIdx, nColIdx, nRows, nCols, nFixRows, nFixCols;
|
int nMargin, nDefaultColumnWidth;
|
CString strTemp;
|
CRect rect;
|
|
m_ctrlGridSignalReadSignalInfo.GetWindowRect(&rect);
|
nMargin = 5;
|
nDefaultColumnWidth = (rect.Width() - nMargin) / (SIGNAL_READ_SIGNAL_INFO_GRID_COL_COUNT + 1);
|
|
nRows = m_nSignalReadSignalCount + 1;
|
nCols = SIGNAL_READ_SIGNAL_INFO_GRID_COL_COUNT;
|
nFixRows = 1;
|
nFixCols = 1;
|
nRowIdx = 0;
|
nColIdx = 0;
|
|
m_ctrlGridSignalReadSignalInfo.GetDefaultCell(FALSE, FALSE)->SetBackClr(RGB(0xFF, 0xFF, 0xE0));
|
m_ctrlGridSignalReadSignalInfo.SetRowCount(nRows);
|
m_ctrlGridSignalReadSignalInfo.SetColumnCount(nCols);
|
m_ctrlGridSignalReadSignalInfo.SetFixedRowCount(nFixRows);
|
m_ctrlGridSignalReadSignalInfo.SetFixedColumnCount(nFixCols);
|
|
GV_ITEM Item;
|
|
Item.mask = GVIF_TEXT;
|
Item.row = nRowIdx;
|
Item.col = nColIdx;
|
strTemp.Format(_T("Index"));//_T("À妽º"));
|
Item.strText = strTemp;
|
m_ctrlGridSignalReadSignalInfo.SetColumnWidth(nColIdx++, nDefaultColumnWidth);
|
m_ctrlGridSignalReadSignalInfo.SetItem(&Item);
|
|
Item.row = nRowIdx;
|
Item.col = nColIdx;
|
strTemp.Format(_T("Address"));//_T("ÁÖ¼Ò"));
|
Item.strText = strTemp;
|
m_ctrlGridSignalReadSignalInfo.SetColumnWidth(nColIdx++, nDefaultColumnWidth * 2);
|
m_ctrlGridSignalReadSignalInfo.SetItem(&Item);
|
}
|
|
void CDlgSignalReadSignal::FillSignalReadSignalInfo()
|
{
|
CReviewSystemSettingDlg* pDlg = (CReviewSystemSettingDlg*)AfxGetMainWnd();
|
if (pDlg==NULL) return;
|
|
CSignalControlInfo *pSignalInfo = pDlg->GetSys_SignalInfo();
|
if (pSignalInfo==NULL) return;
|
|
CString strItemText = _T("");
|
int nSignalReadSignalCount = pSignalInfo->GetReadSignalAddressCount();
|
|
if(nSignalReadSignalCount > 0)
|
{
|
int nRowIdx = 1;
|
m_nSignalReadSignalCount = nSignalReadSignalCount;
|
|
UpdateData(FALSE);
|
OnEnChangeEditSysSignalReadSignalCount();
|
|
BOOL bUseConsecutiveAddress = pSignalInfo->GetUseContinuousReadAddress();
|
m_ctrlButtonUseConsecutiveAddress.SetCheck(bUseConsecutiveAddress);
|
|
for(int i=0; i<nSignalReadSignalCount; i++)
|
{
|
CString strReadSignalAddr = pSignalInfo->GetReadSignalAddress(i);
|
if (strReadSignalAddr.Compare(_T(""))==0) continue;
|
|
//1. ÁÖ¼Ò
|
int nColIdx = 1;
|
strItemText.Format(_T("%s"), strReadSignalAddr);
|
m_ctrlGridSignalReadSignalInfo.SetItemText(nRowIdx, nColIdx, strItemText);
|
|
nRowIdx++;
|
}
|
}
|
else
|
{
|
ResetSignalReadSignalInfoGrid();
|
}
|
}
|
|
void CDlgSignalReadSignal::ResetSignalReadSignalInfoGrid()
|
{
|
int i, nRowIdx, nColIdx;
|
CString strItemText;
|
|
m_nSignalReadSignalCount = SIGNAL_READ_SIGNAL_INFO_GRID_DEFAULT_ROW_COUNT;
|
UpdateData(FALSE);
|
OnEnChangeEditSysSignalReadSignalCount();
|
|
nRowIdx = 1;
|
m_ctrlButtonUseConsecutiveAddress.SetCheck(FALSE);
|
|
for(i = 0; i < SIGNAL_READ_SIGNAL_INFO_GRID_DEFAULT_ROW_COUNT; i++)
|
{
|
nColIdx = 1;
|
|
switch(i)
|
{
|
case 0:
|
default:
|
strItemText = _T("");
|
m_ctrlGridSignalReadSignalInfo.SetItemText(nRowIdx, nColIdx++, strItemText);
|
m_ctrlGridSignalReadSignalInfo.SetItemText(nRowIdx, nColIdx++, strItemText);
|
break;
|
}
|
|
nRowIdx++;
|
}
|
}
|
|
void CDlgSignalReadSignal::UpdateDialogData()
|
{
|
FillSignalReadSignalInfo();
|
Invalidate(TRUE);
|
}
|
|
void CDlgSignalReadSignal::GetSignalReadSignal(CSignalControlInfo &signalInfo)
|
{
|
UpdateData(TRUE);
|
|
signalInfo.SetUseContinuousReadAddress(m_ctrlButtonUseConsecutiveAddress.GetCheck());
|
signalInfo.SetReadSignalAddressCount(0);
|
signalInfo.SetReceiveSignalCount(m_nSignalReadSignalCount);
|
|
int nRowIdx = 1, nColIdx = 1;
|
CString strItemText = _T("");
|
CString strAddr = _T("");
|
|
for(int i=0; i<m_nSignalReadSignalCount; i++)
|
{
|
strItemText = m_ctrlGridSignalReadSignalInfo.GetItemText(nRowIdx, nColIdx);
|
strAddr = strItemText;
|
|
signalInfo.SetReadSignalAddress(strAddr);
|
|
nRowIdx++;
|
}
|
}
|