⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dlgcomset.cpp

📁 MODBUS主、子站规约模拟程序。可以做为MODBUS规约测试的工具
💻 CPP
字号:
// DlgComSet.cpp : implementation file
//

#include "stdafx.h"
#include "jkModbus.h"
#include "DlgComSet.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CDlgComSet dialog


CDlgComSet::CDlgComSet(CWnd* pParent /*=NULL*/)
	: CDialog(CDlgComSet::IDD, pParent)
{
	//{{AFX_DATA_INIT(CDlgComSet)
	m_szParity = _T("");
	m_szPort = _T("");
	m_szBaud = _T("");
	//}}AFX_DATA_INIT
}


void CDlgComSet::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CDlgComSet)
	DDX_Control(pDX, IDC_PORTBAUD, m_cboBaud);
	DDX_Control(pDX, IDC_PORTSET, m_cboPortSet);
	DDX_Control(pDX, IDC_PORTPARITY, m_cboParity);
	DDX_CBString(pDX, IDC_PORTPARITY, m_szParity);
	DDX_CBString(pDX, IDC_PORTSET, m_szPort);
	DDX_CBString(pDX, IDC_PORTBAUD, m_szBaud);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CDlgComSet, CDialog)
	//{{AFX_MSG_MAP(CDlgComSet)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CDlgComSet message handlers

BOOL CDlgComSet::OnInitDialog() 
{
	CDialog::OnInitDialog();
	
	// TODO: Add extra initialization here
//	m_cboPortSet.AddString(_T("COM1"));
//	m_cboPortSet.AddString(_T("COM2"));
//	m_cboPortSet.AddString(_T("COM3"));
	//////////////////
	int PortCount		= 0;
	CString port		= "COM";
	CString comname		= "COM";
	CString portnum;
	HANDLE hCom;
	bool PortExist;
    while(PortCount < 20)
	{
		portnum.Format("%d", ++PortCount);
		PortExist = true;
		hCom = CreateFile(port+portnum,
							GENERIC_READ | GENERIC_WRITE,
							0,                 // exclusive access
							NULL,              // security attrs
							OPEN_EXISTING,
							FILE_FLAG_OVERLAPPED,
							NULL
							);
		if(hCom != INVALID_HANDLE_VALUE)
			CloseHandle(hCom);
		else if(GetLastError() == ERROR_FILE_NOT_FOUND)
			PortExist = false;
		if(PortExist)
		{
		  m_cboPortSet.AddString(comname+portnum);
		}
   	}
	m_cboPortSet.SelectString(-1,m_szPort);
//////////////////////////////////////////////
	m_cboBaud.AddString(_T("300"));
	m_cboBaud.AddString(_T("600"));
	m_cboBaud.AddString(_T("1200"));
	m_cboBaud.AddString(_T("2400"));
	m_cboBaud.AddString(_T("9600"));
	m_cboBaud.AddString(_T("57600"));
	m_cboBaud.AddString(_T("115200"));
	m_cboBaud.SelectString(-1,m_szBaud);
/////////////////////////////////////////////////////
	m_cboParity.AddString(_T("无校验"));
	m_cboParity.AddString(_T("偶校验"));
	m_cboParity.AddString(_T("奇校验"));
	m_cboParity.SelectString(-1,m_szParity);
	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -