📄 portset.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 + -