// 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_nSignalDefocusValueMin(0) , m_nSignalDefocusValueMax(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); DDX_Text(pDX, IDC_EDIT_DEFOCUSVALUE_MIN, m_nSignalDefocusValueMin); DDX_Text(pDX, IDC_EDIT_DEFOCUSVALUE_MAX, m_nSignalDefocusValueMax); } 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; int nDefocusValueMin = 0, nDefocusValueMax = 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(); nDefocusValueMin = pSignalInfo->GetDefocusValueMin(); nDefocusValueMax = pSignalInfo->GetDefocusValueMax(); 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; iEnableWindow(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_nSignalDefocusValueMin = nDefocusValueMin; m_nSignalDefocusValueMax = nDefocusValueMax; 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_nSignalDefocusValueMin = 0; m_nSignalDefocusValueMax = 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->SetDefocusValueMin(m_nSignalDefocusValueMin); pSignalInfo->SetDefocusValueMax(m_nSignalDefocusValueMax); 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; }