// SetOptionDlg.cpp : ±¸Çö ÆÄÀÏÀÔ´Ï´Ù. // #include "stdafx.h" #include "PLCConnector.h" #include "SetOptionDlg.h" // CSetOptionDlg ´ëÈ­ »óÀÚÀÔ´Ï´Ù. IMPLEMENT_DYNAMIC(CSetOptionDlg, CDialog) CSetOptionDlg::CSetOptionDlg(CWnd* pParent /*=NULL*/) : CDialog(CSetOptionDlg::IDD, pParent) { InitValue(); } CSetOptionDlg::~CSetOptionDlg() { } void CSetOptionDlg::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); DDX_Text(pDX, IDC_PLCAddress0, m_PLCAddress0); DDX_Text(pDX, IDC_PLCAddress1, m_PLCAddress1); DDX_Text(pDX, IDC_PLCAddress2, m_PLCAddress2); DDX_Text(pDX, IDC_PLCAddress3, m_PLCAddress3); DDX_Text(pDX, IDC_PLCAddress4, m_PLCAddress4); DDX_Check(pDX, IDC_CHECK_Signal0, m_bUseSignal0); DDX_Check(pDX, IDC_CHECK_Signal1, m_bUseSignal1); DDX_Check(pDX, IDC_CHECK_Signal2, m_bUseSignal2); DDX_Check(pDX, IDC_CHECK_Signal3, m_bUseSignal3); DDX_Check(pDX, IDC_CHECK_Signal4, m_bUseSignal4); DDX_Radio(pDX, IDC_RADIO_MCProtocol, m_Protocol); DDX_Text(pDX, IDC_EDIT_PLCPort, m_nPort); DDX_Text(pDX, IDC_EDIT_StationNo, m_nStationNo); DDX_IPAddress(pDX, IDC_IPPLCAddress, m_dwAddress); DDX_Check(pDX, IDC_CHECK_AOISIGNAL, m_bUseAOISignal); DDX_Text(pDX, IDC_EDIT_AOISERVER_CAPTION, m_strAOICaption); } BEGIN_MESSAGE_MAP(CSetOptionDlg, CDialog) ON_BN_CLICKED(IDOK, &CSetOptionDlg::OnBnClickedOk) END_MESSAGE_MAP() // CSetOptionDlg ¸Þ½ÃÁö 󸮱âÀÔ´Ï´Ù. void CSetOptionDlg::OnBnClickedOk() { // TODO: ¿©±â¿¡ ÄÁÆ®·Ñ ¾Ë¸² 󸮱â Äڵ带 Ãß°¡ÇÕ´Ï´Ù. UpdateData(TRUE); //PLC SignalÀ» ÀоîµéÀÏ ÁÖ¼Ò°¡ ¼³Á¤µÊ SaveINIFile(); AfxMessageBox(_T("ÇÁ·Î±×·¥À» Àç°¡µ¿ÇÏ¸é ¼³Á¤°ªÀÌ Àû¿ëµË´Ï´Ù.")); OnOK(); } void CSetOptionDlg::InitValue() { ::ZeroMemory( m_AddressToReadSignal0, sizeof(TCHAR)*7); ::ZeroMemory( m_AddressToReadSignal1, sizeof(TCHAR)*7); ::ZeroMemory( m_AddressToReadSignal2, sizeof(TCHAR)*7); ::ZeroMemory( m_AddressToReadSignal3, sizeof(TCHAR)*7); ::ZeroMemory( m_AddressToReadSignal4, sizeof(TCHAR)*7); m_PLCAddress0 = m_PLCAddress1 = m_PLCAddress2 = m_PLCAddress3 = m_PLCAddress4 = _T(""); m_strAOICaption = _T(""); m_bUseSignal0 = m_bUseSignal1 = m_bUseSignal2 = m_bUseSignal3 = m_bUseSignal4 = FALSE; m_Protocol = m_nPort = m_nStationNo = 0; m_dwAddress = 0; m_bUseAOISignal = FALSE; } void CSetOptionDlg::LoadINIFile(void) { CString Path; GetModulePath(Path); CString INIFilePath; INIFilePath.Format(_T("%sPLCConnector.ini"),Path); InitValue(); ::GetPrivateProfileString(_T("SAVE_OPTION"),_T("ADDRESS_TOREAD_SIGNAL0"),_T("D0"), m_AddressToReadSignal0,6,INIFilePath); m_bUseSignal0 = ::GetPrivateProfileInt(_T("SAVE_OPTION"),_T("USEREADSIGNAL0"),0,INIFilePath); ::GetPrivateProfileString(_T("SAVE_OPTION"),_T("ADDRESS_TOREAD_SIGNAL1"),_T("D1"), m_AddressToReadSignal1,6,INIFilePath); m_bUseSignal1 = ::GetPrivateProfileInt(_T("SAVE_OPTION"),_T("USEREADSIGNAL1"),0,INIFilePath); ::GetPrivateProfileString(_T("SAVE_OPTION"),_T("ADDRESS_TOREAD_SIGNAL2"),_T("D2"), m_AddressToReadSignal2,6,INIFilePath); m_bUseSignal2 = ::GetPrivateProfileInt(_T("SAVE_OPTION"),_T("USEREADSIGNAL2"),0,INIFilePath); ::GetPrivateProfileString(_T("SAVE_OPTION"),_T("ADDRESS_TOREAD_SIGNAL3"),_T("D3"), m_AddressToReadSignal3,6,INIFilePath); m_bUseSignal3 = ::GetPrivateProfileInt(_T("SAVE_OPTION"),_T("USEREADSIGNAL3"),0,INIFilePath); ::GetPrivateProfileString(_T("SAVE_OPTION"),_T("ADDRESS_TOREAD_SIGNAL4"),_T("D4"), m_AddressToReadSignal4,6,INIFilePath); m_bUseSignal4 = ::GetPrivateProfileInt(_T("SAVE_OPTION"),_T("USEREADSIGNAL4"),0,INIFilePath); m_PLCAddress0.Format(_T("%s"),m_AddressToReadSignal0 ); m_PLCAddress1.Format(_T("%s"),m_AddressToReadSignal1 ); m_PLCAddress2.Format(_T("%s"),m_AddressToReadSignal2 ); m_PLCAddress3.Format(_T("%s"),m_AddressToReadSignal3 ); m_PLCAddress4.Format(_T("%s"),m_AddressToReadSignal4 ); m_Protocol = ::GetPrivateProfileInt(_T("SAVE_OPTION"),_T("PROTOCOL"),0,INIFilePath); m_dwAddress = ::GetPrivateProfileInt(_T("SAVE_OPTION"),_T("IP_ADDRESS"),htonl(inet_addr("126.100.100.50")),INIFilePath); m_nPort = ::GetPrivateProfileInt(_T("SAVE_OPTION"),_T("PORT_NO"),4096,INIFilePath); m_nStationNo = ::GetPrivateProfileInt(_T("SAVE_OPTION"),_T("STATION_NO"),11,INIFilePath); m_bUseAOISignal = ::GetPrivateProfileInt(_T("SAVE_OPTION"),_T("USE_AOISIGNAL"),0,INIFilePath); ::GetPrivateProfileString(_T("SAVE_OPTION"),_T("AOISERVER_CAPTION"),_T("! Inspection ! D.I.T"), m_TstrAOICaption,50,INIFilePath); m_strAOICaption.Format(_T("%s"),m_TstrAOICaption); } void CSetOptionDlg::SaveINIFile(void) { CString Path; GetModulePath(Path); CString INIFilePath; INIFilePath.Format(_T("%sPLCConnector.ini"),Path); //Signal0 WritePrivateProfileString(_T("SAVE_OPTION"),_T("ADDRESS_TOREAD_SIGNAL0"),m_PLCAddress0,INIFilePath); CString ValueOfSetting; ValueOfSetting = _T(""); ValueOfSetting.Format(_T("%d"),m_bUseSignal0); WritePrivateProfileString(_T("SAVE_OPTION"),_T("USEREADSIGNAL0"),ValueOfSetting,INIFilePath); //Signal1 WritePrivateProfileString(_T("SAVE_OPTION"),_T("ADDRESS_TOREAD_SIGNAL1"),m_PLCAddress1,INIFilePath); ValueOfSetting = _T(""); ValueOfSetting.Format(_T("%d"),m_bUseSignal1); WritePrivateProfileString(_T("SAVE_OPTION"),_T("USEREADSIGNAL1"),ValueOfSetting,INIFilePath); //Signal2 WritePrivateProfileString(_T("SAVE_OPTION"),_T("ADDRESS_TOREAD_SIGNAL2"),m_PLCAddress2,INIFilePath); ValueOfSetting = _T(""); ValueOfSetting.Format(_T("%d"),m_bUseSignal2); WritePrivateProfileString(_T("SAVE_OPTION"),_T("USEREADSIGNAL2"),ValueOfSetting,INIFilePath); //Signal3 WritePrivateProfileString(_T("SAVE_OPTION"),_T("ADDRESS_TOREAD_SIGNAL3"),m_PLCAddress3,INIFilePath); ValueOfSetting = _T(""); ValueOfSetting.Format(_T("%d"),m_bUseSignal3); WritePrivateProfileString(_T("SAVE_OPTION"),_T("USEREADSIGNAL3"),ValueOfSetting,INIFilePath); //Signal4 WritePrivateProfileString(_T("SAVE_OPTION"),_T("ADDRESS_TOREAD_SIGNAL4"),m_PLCAddress4,INIFilePath); ValueOfSetting = _T(""); ValueOfSetting.Format(_T("%d"),m_bUseSignal4); WritePrivateProfileString(_T("SAVE_OPTION"),_T("USEREADSIGNAL4"),ValueOfSetting,INIFilePath); ValueOfSetting = _T(""); ValueOfSetting.Format(_T("%d"),m_Protocol); WritePrivateProfileString(_T("SAVE_OPTION"),_T("PROTOCOL"),ValueOfSetting,INIFilePath); ValueOfSetting = _T(""); ValueOfSetting.Format(_T("%d"),m_dwAddress); WritePrivateProfileString(_T("SAVE_OPTION"),_T("IP_ADDRESS"),ValueOfSetting,INIFilePath); ValueOfSetting = _T(""); ValueOfSetting.Format(_T("%d"),m_nPort); WritePrivateProfileString(_T("SAVE_OPTION"),_T("PORT_NO"),ValueOfSetting,INIFilePath); ValueOfSetting = _T(""); ValueOfSetting.Format(_T("%d"),m_nStationNo); WritePrivateProfileString(_T("SAVE_OPTION"),_T("STATION_NO"),ValueOfSetting,INIFilePath); ValueOfSetting.Format(_T("%d"),m_bUseAOISignal); WritePrivateProfileString(_T("SAVE_OPTION"),_T("USE_AOISIGNAL"),ValueOfSetting,INIFilePath); WritePrivateProfileString(_T("SAVE_OPTION"),_T("AOISERVER_CAPTION"),m_strAOICaption,INIFilePath); } bool CSetOptionDlg::GetModulePath(CString& strPath) { TCHAR szBuffer[MAX_PATH]= {0}; ::GetModuleFileName(NULL,szBuffer,MAX_PATH); for(int i = lstrlen(szBuffer) -1; i>=0; --i) { if(szBuffer[i] == '\\') { int j = lstrlen(szBuffer)-1; for(;j>=i;--j) { szBuffer[j] = NULL; } if(szBuffer[j] == ';') szBuffer[j+1] = '\\'; szBuffer[j+1] = '\\'; strPath = szBuffer; return true; } } return false; } BOOL CSetOptionDlg::OnInitDialog() { CDialog::OnInitDialog(); // TODO: ¿©±â¿¡ Ãß°¡ ÃʱâÈ­ ÀÛ¾÷À» Ãß°¡ÇÕ´Ï´Ù. LoadINIFile(); UpdateData(false); return TRUE; // return TRUE unless you set the focus to a control // ¿¹¿Ü: OCX ¼Ó¼º ÆäÀÌÁö´Â FALSE¸¦ ¹ÝÈ¯ÇØ¾ß ÇÕ´Ï´Ù. }