// DlgSignal.cpp : ±¸Çö ÆÄÀÏÀÔ´Ï´Ù.
|
//
|
|
#include "stdafx.h"
|
#include "ReviewSystemSetting.h"
|
#include "DlgSignal.h"
|
#include "ReviewSystemSettingDlg.h"
|
#include "CHSignalControls/SignalControlInfo.h"
|
|
// CDlgSignal ´ëÈ »óÀÚÀÔ´Ï´Ù.
|
|
IMPLEMENT_DYNAMIC(CDlgSignal, CDialog)
|
|
CDlgSignal::CDlgSignal(CWnd* pParent /*=NULL*/)
|
: CDialog(CDlgSignal::IDD, pParent)
|
, m_nPort(0)
|
, m_strReceiveAddress(_T(""))
|
, m_strSendAddress(_T(""))
|
, m_nSignalPeriod(0)
|
, m_nTimerTime(0)
|
, m_nTotalTime(0)
|
, m_nSignalLodingDelay(0)
|
, m_nSignalAlignStartDelay(0)
|
, m_nSignalAlignEndDelay(0)
|
, m_nSignalReviewStartDelay(0)
|
, m_nSignalReviewEndDelay(0)
|
, m_nSignalUnloadingDelay(0)
|
{
|
m_pDlgSignalReadData = NULL;
|
m_pDlgSignalWriteData = NULL;
|
|
m_pDlgSignalReadSignal = NULL;
|
m_pDlgSignalWriteSignal = NULL;
|
|
m_pDlgSignalReadCimData = NULL;
|
m_pDlgSignalWriteCimData = NULL;
|
}
|
|
CDlgSignal::~CDlgSignal()
|
{
|
// PLC Data
|
if(m_pDlgSignalReadData)
|
{
|
delete m_pDlgSignalReadData;
|
m_pDlgSignalReadData = NULL;
|
}
|
|
if(m_pDlgSignalWriteData)
|
{
|
delete m_pDlgSignalWriteData;
|
m_pDlgSignalWriteData = NULL;
|
}
|
|
// PLC Signal
|
if(m_pDlgSignalReadSignal)
|
{
|
delete m_pDlgSignalReadSignal;
|
m_pDlgSignalReadSignal = NULL;
|
}
|
|
if(m_pDlgSignalWriteSignal)
|
{
|
delete m_pDlgSignalWriteSignal;
|
m_pDlgSignalWriteSignal = NULL;
|
}
|
|
// CIM Data
|
if(m_pDlgSignalReadCimData)
|
{
|
delete m_pDlgSignalReadCimData;
|
m_pDlgSignalReadCimData = NULL;
|
}
|
|
if(m_pDlgSignalWriteCimData)
|
{
|
delete m_pDlgSignalWriteCimData;
|
m_pDlgSignalWriteCimData = NULL;
|
}
|
}
|
|
void CDlgSignal::DoDataExchange(CDataExchange* pDX)
|
{
|
CDialog::DoDataExchange(pDX);
|
DDX_Control(pDX, IDC_COMBO_SYS_SIGNAL_TYPE, m_ctrlComboSignalConnectionType);
|
DDX_Text(pDX, IDC_EDIT_SYS_SIGNAL_PORT_NUM, m_nPort);
|
DDX_Text(pDX, IDC_EDIT_SYS_SIGNAL_RECEIVE_ADDR, m_strReceiveAddress);
|
DDX_Text(pDX, IDC_EDIT_SYS_SIGNAL_SEND_ADDR, m_strSendAddress);
|
DDX_Text(pDX, IDC_EDIT_SYS_SIGNAL_PERIOD, m_nSignalPeriod);
|
DDX_Control(pDX, IDC_TAB_SYS_SIGNAL_TAB, m_ctrlTabSignal);
|
DDX_Text(pDX, IDC_EDIT_SYS_SIGNAL_TIMER_TIME, m_nTimerTime);
|
DDX_Text(pDX, IDC_EDIT_SYS_SIGNAL_TOTAL_TIME, m_nTotalTime);
|
DDX_Text(pDX, IDC_EDIT_SYS_SIGNAL_LOADING_DELAY, m_nSignalLodingDelay);
|
DDX_Text(pDX, IDC_EDIT_SYS_SIGNAL_ALIGNSTART_DELAY, m_nSignalAlignStartDelay);
|
DDX_Text(pDX, IDC_EDIT_SYS_SIGNAL_ALIGNEND_DELAY, m_nSignalAlignEndDelay);
|
DDX_Text(pDX, IDC_EDIT_SYS_SIGNAL_REVIEWSTART_DELAY, m_nSignalReviewStartDelay);
|
DDX_Text(pDX, IDC_EDIT_SYS_SIGNAL_REVIEWEND_DELAY, m_nSignalReviewEndDelay);
|
DDX_Text(pDX, IDC_EDIT_SYS_SIGNAL_UNLOADING_DELAY, m_nSignalUnloadingDelay);
|
}
|
|
|
BEGIN_MESSAGE_MAP(CDlgSignal, CDialog)
|
ON_BN_CLICKED(IDC_BUTTON_SYS_SIGNAL_RESET, &CDlgSignal::OnBnClickedButtonSysSignalReset)
|
ON_BN_CLICKED(IDC_BUTTON_SYS_SIGNAL_APPLY, &CDlgSignal::OnBnClickedButtonSysSignalApply)
|
ON_NOTIFY(TCN_SELCHANGE, IDC_TAB_SYS_SIGNAL_TAB, &CDlgSignal::OnTcnSelchangeTabSysSignalTab)
|
END_MESSAGE_MAP()
|
|
|
// CDlgSignal ¸Þ½ÃÁö 󸮱âÀÔ´Ï´Ù.
|
|
BOOL CDlgSignal::OnInitDialog()
|
{
|
CDialog::OnInitDialog();
|
|
// TODO: ¿©±â¿¡ Ãß°¡ ÃʱâÈ ÀÛ¾÷À» Ãß°¡ÇÕ´Ï´Ù.
|
int nSignalConnectionType = -1, nSignalPort = -1, nSignalPeriodTime = -1, nTimerTime = 0, nTotalTime = 0;
|
int nLoadingDelay = 0, nAlignStartDelay = 0, nAlignEndDelay = 0, nReviewStartDelay = 0, nReviewEndDelay = 0, nUnloadingDelay = 0;
|
CString strTemp = _T(""), strSignalReceiveAddress = _T(""), strSignalSendAddress = _T("");
|
CReviewSystemSettingDlg* pDlg = (CReviewSystemSettingDlg*)AfxGetMainWnd();
|
|
if(pDlg)
|
{
|
CSignalControlInfo* pSignalInfo = pDlg->GetSys_SignalInfo();
|
if(pSignalInfo)
|
{
|
nSignalConnectionType = pSignalInfo->GetControllerType();
|
nSignalPort = pSignalInfo->GetPort();
|
// strSignalReceiveAddress = pSignalInfo->GetReadSignalAddress(0);
|
// strSignalSendAddress = pSignalInfo->GetSendSignalAddress(0);
|
nSignalPeriodTime = pSignalInfo->GetMSPeriod();
|
nLoadingDelay = pSignalInfo->GetMSLoadingSignalDelay();
|
nAlignStartDelay = pSignalInfo->GetMSAlignStartSignalDelay();
|
nAlignEndDelay = pSignalInfo->GetMSAlignEndSignalDelay();
|
nReviewStartDelay = pSignalInfo->GetMSReviewStartSignalDelay();
|
nReviewEndDelay = pSignalInfo->GetMSReviewEndSignalDelay();
|
nUnloadingDelay = pSignalInfo->GetMSUnloadingSignalDelay();
|
nTimerTime = pSignalInfo->GetMSTimerTime();
|
nTotalTime = pSignalInfo->GetMSTotalTime();
|
}
|
}
|
|
for(int i=0; i<SignalConnectType_Count; i++)
|
{
|
switch (i)
|
{
|
case SignalConnectType_Simulation:
|
strTemp.Format(_T("Simulation"));
|
break;
|
case SignalConnectType_Plc:
|
strTemp.Format(_T("Signal MXComponet"));
|
break;
|
case SignalConnectType_Dit_PcControl:
|
strTemp.Format(_T("DIT PCControl"));
|
break;
|
default:
|
strTemp.Format(_T(""));
|
break;
|
}
|
|
m_ctrlComboSignalConnectionType.InsertString(i, strTemp);
|
}
|
|
m_ctrlComboSignalConnectionType.SetCurSel(nSignalConnectionType);
|
|
if(nSignalConnectionType == SignalConnectType_Plc)
|
{
|
((CEdit*)GetDlgItem(IDC_EDIT_SYS_SIGNAL_PORT_NUM))->EnableWindow(FALSE);
|
((CEdit*)GetDlgItem(IDC_EDIT_SYS_SIGNAL_RECEIVE_ADDR))->EnableWindow(FALSE);
|
((CEdit*)GetDlgItem(IDC_EDIT_SYS_SIGNAL_SEND_ADDR))->EnableWindow(FALSE);
|
m_nPort = 0;
|
m_strReceiveAddress = _T("");
|
}
|
else
|
{
|
((CEdit*)GetDlgItem(IDC_EDIT_SYS_SIGNAL_PORT_NUM))->EnableWindow(TRUE);
|
((CEdit*)GetDlgItem(IDC_EDIT_SYS_SIGNAL_RECEIVE_ADDR))->EnableWindow(TRUE);
|
((CEdit*)GetDlgItem(IDC_EDIT_SYS_SIGNAL_SEND_ADDR))->EnableWindow(TRUE);
|
m_nPort = nSignalPort;
|
m_strReceiveAddress = strSignalReceiveAddress;
|
}
|
|
m_strSendAddress = strSignalSendAddress;
|
m_nSignalPeriod = nSignalPeriodTime;
|
m_nSignalLodingDelay = nLoadingDelay;
|
m_nSignalAlignStartDelay = nAlignStartDelay;
|
m_nSignalAlignEndDelay = nAlignEndDelay;
|
m_nSignalReviewStartDelay = nReviewStartDelay;
|
m_nSignalReviewEndDelay = nReviewEndDelay;
|
m_nSignalUnloadingDelay = nUnloadingDelay;
|
m_nTimerTime = nTimerTime;
|
m_nTotalTime = nTotalTime;
|
|
CreateTabDlg();
|
InitTabControl();
|
|
UpdateData(FALSE);
|
|
return TRUE; // return TRUE unless you set the focus to a control
|
// ¿¹¿Ü: OCX ¼Ó¼º ÆäÀÌÁö´Â FALSE¸¦ ¹ÝÈ¯ÇØ¾ß ÇÕ´Ï´Ù.
|
}
|
|
BOOL CDlgSignal::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 CDlgSignal::CreateTabDlg()
|
{
|
CRect rtCtrl;
|
m_ctrlTabSignal.GetWindowRect(&rtCtrl);
|
ScreenToClient(&rtCtrl);
|
|
rtCtrl.DeflateRect(2, 22, 3, 2);
|
|
m_pDlgSignalReadData = new CDlgSignalReadData;
|
m_pDlgSignalReadData->Create(CDlgSignalReadData::IDD, this);
|
m_pDlgSignalReadData->MoveWindow(rtCtrl);
|
m_pDlgSignalReadData->ShowWindow(SW_SHOW);
|
|
m_pDlgSignalWriteData = new CDlgSignalWriteData;
|
m_pDlgSignalWriteData->Create(CDlgSignalWriteData::IDD, this);
|
m_pDlgSignalWriteData->MoveWindow(rtCtrl);
|
|
m_pDlgSignalReadSignal = new CDlgSignalReadSignal;
|
m_pDlgSignalReadSignal->Create(CDlgSignalReadSignal::IDD, this);
|
m_pDlgSignalReadSignal->MoveWindow(rtCtrl);
|
|
m_pDlgSignalWriteSignal = new CDlgSignalWriteSignal;
|
m_pDlgSignalWriteSignal->Create(CDlgSignalWriteSignal::IDD, this);
|
m_pDlgSignalWriteSignal->MoveWindow(rtCtrl);
|
|
m_pDlgSignalReadCimData = new CDlgSignalReadCimData;
|
m_pDlgSignalReadCimData->Create(CDlgSignalReadCimData::IDD, this);
|
m_pDlgSignalReadCimData->MoveWindow(rtCtrl);
|
|
m_pDlgSignalWriteCimData = new CDlgSignalWriteCimData;
|
m_pDlgSignalWriteCimData->Create(CDlgSignalWriteCimData::IDD, this);
|
m_pDlgSignalWriteCimData->MoveWindow(rtCtrl);
|
}
|
|
void CDlgSignal::InitTabControl()
|
{
|
int nIdx = 0;
|
m_ctrlTabSignal.InsertItem(nIdx++, _T("Read_Data"));
|
m_ctrlTabSignal.InsertItem(nIdx++, _T("Send_Data"));
|
|
m_ctrlTabSignal.InsertItem(nIdx++, _T("Read_Signal"));
|
m_ctrlTabSignal.InsertItem(nIdx++, _T("Send_Signal"));
|
|
// m_ctrlTabSignal.InsertItem(nIdx++, _T("Read_CIM"));
|
// m_ctrlTabSignal.InsertItem(nIdx++, _T("Send_CIM"));
|
}
|
|
void CDlgSignal::OnBnClickedButtonSysSignalReset()
|
{
|
// TODO: ¿©±â¿¡ ÄÁÆ®·Ñ ¾Ë¸² 󸮱â Äڵ带 Ãß°¡ÇÕ´Ï´Ù.
|
m_ctrlComboSignalConnectionType.SetCurSel(-1);
|
m_nPort = -1;
|
m_strReceiveAddress = _T("");
|
m_strSendAddress = _T("");
|
m_nSignalPeriod = 0;
|
m_nSignalLodingDelay = 0;
|
m_nSignalAlignStartDelay = 0;
|
m_nSignalAlignEndDelay = 0;
|
m_nSignalReviewStartDelay = 0;
|
m_nSignalReviewEndDelay = 0;
|
m_nSignalUnloadingDelay = 0;
|
m_nTimerTime = 0;
|
m_nTotalTime = 0;
|
|
UpdateData(FALSE);
|
}
|
|
void CDlgSignal::OnBnClickedButtonSysSignalApply()
|
{
|
// TODO: ¿©±â¿¡ ÄÁÆ®·Ñ ¾Ë¸² 󸮱â Äڵ带 Ãß°¡ÇÕ´Ï´Ù.
|
UpdateData(TRUE);
|
|
CReviewSystemSettingDlg* pDlg = (CReviewSystemSettingDlg*)AfxGetMainWnd();
|
if (pDlg==NULL) return;
|
|
CSignalControlInfo *pSignalInfo = pDlg->GetSys_SignalInfo();
|
if (pSignalInfo==NULL) return;
|
|
pSignalInfo->Reset();
|
pSignalInfo->SetControllerType(m_ctrlComboSignalConnectionType.GetCurSel());
|
pSignalInfo->SetPort(m_nPort);
|
pSignalInfo->SetReadSignalAddress(m_strReceiveAddress);
|
pSignalInfo->SetSendSignalAddress(m_strSendAddress);
|
pSignalInfo->SetMSPeriod(m_nSignalPeriod);
|
pSignalInfo->SetMSLodingSignalDelay(m_nSignalLodingDelay);
|
pSignalInfo->SetMSAlignStartSignalDelay(m_nSignalAlignStartDelay);
|
pSignalInfo->SetMSAlignEndSignalDelay(m_nSignalAlignEndDelay);
|
pSignalInfo->SetMSReviewStartSignalDelay(m_nSignalReviewStartDelay);
|
pSignalInfo->SetMSReviewEndSignalDelay(m_nSignalReviewEndDelay);
|
pSignalInfo->SetMSUnloadingSignalDelay(m_nSignalUnloadingDelay);
|
pSignalInfo->SetMSTimerTime(m_nTimerTime);
|
pSignalInfo->SetMSTotalTime(m_nTotalTime);
|
|
m_pDlgSignalReadData->GetSignalReadData(*pSignalInfo);
|
m_pDlgSignalWriteData->GetSignalWriteData(*pSignalInfo);
|
|
m_pDlgSignalReadSignal->GetSignalReadSignal(*pSignalInfo);
|
m_pDlgSignalWriteSignal->GetSignalWriteSignal(*pSignalInfo);
|
|
// m_pDlgSignalReadCimData->GetSignalReadCimData(*pSignalInfo);
|
// m_pDlgSignalWriteCimData->GetSignalWriteCimData(*pSignalInfo);
|
}
|
|
void CDlgSignal::OnTcnSelchangeTabSysSignalTab(NMHDR *pNMHDR, LRESULT *pResult)
|
{
|
// TODO: ¿©±â¿¡ ÄÁÆ®·Ñ ¾Ë¸² 󸮱â Äڵ带 Ãß°¡ÇÕ´Ï´Ù.
|
int nIdx;
|
|
nIdx = m_ctrlTabSignal.GetCurSel();
|
|
switch(nIdx)
|
{
|
case PLC_DataRead:
|
m_pDlgSignalReadData->ShowWindow(SW_SHOW);
|
m_pDlgSignalWriteData->ShowWindow(SW_HIDE);
|
m_pDlgSignalReadSignal->ShowWindow(SW_HIDE);
|
m_pDlgSignalWriteSignal->ShowWindow(SW_HIDE);
|
m_pDlgSignalReadCimData->ShowWindow(SW_HIDE);
|
m_pDlgSignalWriteCimData->ShowWindow(SW_HIDE);
|
break;
|
case PLC_DataSend:
|
m_pDlgSignalReadData->ShowWindow(SW_HIDE);
|
m_pDlgSignalWriteData->ShowWindow(SW_SHOW);
|
m_pDlgSignalReadSignal->ShowWindow(SW_HIDE);
|
m_pDlgSignalWriteSignal->ShowWindow(SW_HIDE);
|
m_pDlgSignalReadCimData->ShowWindow(SW_HIDE);
|
m_pDlgSignalWriteCimData->ShowWindow(SW_HIDE);
|
break;
|
case PLC_SignalRead:
|
m_pDlgSignalReadData->ShowWindow(SW_HIDE);
|
m_pDlgSignalWriteData->ShowWindow(SW_HIDE);
|
m_pDlgSignalReadSignal->ShowWindow(SW_SHOW);
|
m_pDlgSignalWriteSignal->ShowWindow(SW_HIDE);
|
m_pDlgSignalReadCimData->ShowWindow(SW_HIDE);
|
m_pDlgSignalWriteCimData->ShowWindow(SW_HIDE);
|
break;
|
case PLC_SignalSend:
|
m_pDlgSignalReadData->ShowWindow(SW_HIDE);
|
m_pDlgSignalWriteData->ShowWindow(SW_HIDE);
|
m_pDlgSignalReadSignal->ShowWindow(SW_HIDE);
|
m_pDlgSignalWriteSignal->ShowWindow(SW_SHOW);
|
m_pDlgSignalReadCimData->ShowWindow(SW_HIDE);
|
m_pDlgSignalWriteCimData->ShowWindow(SW_HIDE);
|
break;
|
case CIM_DataRead:
|
m_pDlgSignalReadData->ShowWindow(SW_HIDE);
|
m_pDlgSignalWriteData->ShowWindow(SW_HIDE);
|
m_pDlgSignalReadSignal->ShowWindow(SW_HIDE);
|
m_pDlgSignalWriteSignal->ShowWindow(SW_HIDE);
|
m_pDlgSignalReadCimData->ShowWindow(SW_SHOW);
|
m_pDlgSignalWriteCimData->ShowWindow(SW_HIDE);
|
break;
|
case CIM_DataSend:
|
m_pDlgSignalReadData->ShowWindow(SW_HIDE);
|
m_pDlgSignalWriteData->ShowWindow(SW_HIDE);
|
m_pDlgSignalReadSignal->ShowWindow(SW_HIDE);
|
m_pDlgSignalWriteSignal->ShowWindow(SW_HIDE);
|
m_pDlgSignalReadCimData->ShowWindow(SW_HIDE);
|
m_pDlgSignalWriteCimData->ShowWindow(SW_SHOW);
|
break;
|
default:
|
break;
|
}
|
|
*pResult = 0;
|
}
|