// 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; i<nSignalWriteDataCount; i++)
|
{
|
CString strSendSignalAddr = pSignalInfo->GetSendSignalAddress(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);
|
}
|
}
|