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

📄 portset.cpp

📁 串口测试工具
💻 CPP
字号:
#include "stdafx.h"
#include "PortTest.h"
#include "PortSet.h"

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

extern int PortNo ;
extern CString PortSet ;


CPortSet::CPortSet(CWnd* pParent /*=NULL*/)
	: CDialog(CPortSet::IDD, pParent)
{
	//{{AFX_DATA_INIT(CPortSet)
	m_baud = -1;
	m_checkbit = -1;
	m_databit = -1;
	m_stopbit = -1;
	//}}AFX_DATA_INIT
}


void CPortSet::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CPortSet)
	DDX_Control(pDX, IDC_PORTNO, m_portno);
	DDX_Radio(pDX, IDC_BAUD, m_baud);
	DDX_Radio(pDX, IDC_CHECHBIT, m_checkbit);
	DDX_Radio(pDX, IDC_DATABIT, m_databit);
	DDX_Radio(pDX, IDC_STOPBIT, m_stopbit);
	//}}AFX_DATA_MAP
}


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

/////////////////////////////////////////////////////////////////////////////
// CPortSet message handlers

void CPortSet::OnOK() 
{
	UpdateData( TRUE ) ; 

	CString strTmp ;
	PortNo = m_portno.GetCurSel() + 1 ;
	
	switch( m_baud )
	{
	case 0:
		strTmp += "300," ;
		break ;
	case 1:
		strTmp += "600," ;
		break ;
	case 2:
		strTmp += "1200," ;
		break ;
	case 3:
		strTmp += "2400," ;
		break ;
	case 4:
		strTmp += "4800," ;
		break ;
	case 5:
		strTmp += "9600," ;
		break ;
	case 6:
		strTmp += "19200," ;
		break ;
	case 7:
		strTmp += "38400," ;
		break ;
	}
	switch( m_checkbit )
	{
	case 0:
		strTmp += "n," ;
		break ;
	case 1:
		strTmp += "o," ;
		break ;
	case 2:
		strTmp += "e," ;
		break ;
	}
	switch( m_databit )
	{
	case 0:
		strTmp += "5," ;
		break ;
	case 1:
		strTmp += "6," ;
		break ;
	case 2:
		strTmp += "7," ;
		break ;
	case 3:
		strTmp += "8," ;
		break ;
	}
	switch( m_stopbit )
	{
	case 0:
		strTmp += "1" ;
		break ;
	case 1:
		strTmp += "1.5" ;
		break ;
	case 2:
		strTmp += "2" ;
		break ;
	}
	PortSet = strTmp ;

	CDialog::OnOK();
}

BOOL CPortSet::OnInitDialog() 
{
	CDialog::OnInitDialog();
	
	m_portno.AddString( "串口1" ) ;
	m_portno.AddString( "串口2" ) ;
	m_portno.AddString( "串口3" ) ;
	m_portno.AddString( "串口4" ) ;
	m_portno.AddString( "串口5" ) ;
	m_portno.AddString( "串口6" ) ;
	m_portno.AddString( "串口7" ) ;
	m_portno.AddString( "串口8" ) ;
	m_portno.AddString( "串口9" ) ;
	m_portno.AddString( "串口10" ) ;

	m_portno.SetCurSel( PortNo - 1 ) ;

	int start = 0, end ;
	for( int i = 0; i < 4; i++ )
	{
		end = PortSet.Find( ",", start ) ;
		if( i == 0 )	//波特率
		{
			m_baud = atoi( PortSet.Mid( start, end-start ) ) ;
			switch( m_baud )
			{
			case 300:
				m_baud = 0 ;
				break ;
			case 600:
				m_baud = 1 ;
				break ;
			case 1200:
				m_baud = 2 ;
				break ;
			case 2400:
				m_baud = 3 ;
				break ;
			case 4800:
				m_baud = 4 ;
				break ;
			case 9600:
				m_baud = 5 ;
				break ;
			case 19200:
				m_baud = 6 ;
				break ;
			case 38400:
				m_baud = 7 ;
				break ;
			}
		}
		else if( i == 1 ) 
		{
			if( PortSet.Mid( start, end-start ) == "n" )
				m_checkbit = 0 ;
			if( PortSet.Mid( start, end-start ) == "o" )
				m_checkbit = 1 ;
			else if( PortSet.Mid( start, end-start ) == "e" )
				m_checkbit = 2 ;
		}
		else if( i == 2 )
		{
			m_databit = atoi( PortSet.Mid( start, end-start ) ) - 5 ;
		}
		else
		{
			end = PortSet.GetLength() ;
			if( PortSet.Mid( start, end-start ) == "1" )
				m_stopbit = 0 ;
			if( PortSet.Mid( start, end-start ) == "1.5" )
				m_stopbit = 1 ;
			else if( PortSet.Mid( start, end-start ) == "2" )
				m_stopbit = 2 ;
		}
		start = end + 1 ;
	}

	UpdateData( FALSE ) ;

	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 + -