📄 comconfig.cpp
字号:
// ComConfig.cpp : implementation file
//
#include "stdafx.h"
#include "SHT11Transmit.h"
#include "ComConfig.h"
#include "PCOMM.H"
#include "SHT11TransmitDlg.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CComConfig property page
IMPLEMENT_DYNCREATE(CComConfig, CPropertyPage)
CComConfig::CComConfig() : CPropertyPage(CComConfig::IDD)
{
//{{AFX_DATA_INIT(CComConfig)
// NOTE: the ClassWizard will add member initialization here
//}}AFX_DATA_INIT
}
CComConfig::~CComConfig()
{
}
void CComConfig::DoDataExchange(CDataExchange* pDX)
{
CPropertyPage::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CComConfig)
DDX_Control(pDX, IDC_COMBO5, m_ctrlParity);
DDX_Control(pDX, IDC_COMBO4, m_ctrlStopBits);
DDX_Control(pDX, IDC_COMBO3, m_ctrlDataBits);
DDX_Control(pDX, IDC_COMBO2, m_ctrlBaud);
DDX_Control(pDX, IDC_COMBO1, m_ctrlPort);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CComConfig, CPropertyPage)
//{{AFX_MSG_MAP(CComConfig)
ON_BN_CLICKED(IDC_BUTTON1, OnButton1)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CComConfig message handlers
void CComConfig::OnButton1()
{
// TODO: Add your control notification handler code here
UpdateData(TRUE);
m_nBaud = m_ctrlBaud.GetCurSel();
m_nPort = m_ctrlPort.GetCurSel();
m_nParity = m_ctrlParity.GetCurSel();
m_nStopBits = m_ctrlStopBits.GetCurSel();
m_nDataBits = m_ctrlDataBits.GetCurSel();
//设置波特率
if(m_nBaud == 0)
{
m_nBaud = B300;
}
else if(m_nBaud == 1)
{
m_nBaud = B600;
}
else if(m_nBaud == 2)
{
m_nBaud = B1200;
}
else if(m_nBaud == 3)
{
m_nBaud = B2400;
}
else if(m_nBaud == 4)
{
m_nBaud = B4800;
}
else if(m_nBaud == 5)
{
m_nBaud = B9600;
}
else if(m_nBaud == 6)
{
m_nBaud = B19200;
}
else if(m_nBaud == 7)
{
m_nBaud = B38400;
}
else if(m_nBaud == 8)
{
m_nBaud = B57600;
}
else if(m_nBaud == 9)
{
m_nBaud = B115200;
}
else
{
m_nBaud = B9600;
}
SetCommData.baud = m_nBaud;
//设置通讯端口
sio_close(SetCommData.port);
m_nPort += 1;
SetCommData.port = m_nPort;
//设置效验方式
if(m_nParity == 0)
{
m_nParity = P_NONE;
}
else if(m_nParity == 1)
{
m_nParity = P_EVEN;
}
else if(m_nParity == 2)
{
m_nParity = P_ODD;
}
else
{
m_nParity = P_NONE;
}
SetCommData.parity = m_nParity;
//设置停止位
if(m_nStopBits == 0)
{
m_nStopBits = STOP_1;
}
else if(m_nStopBits == 1)
{
m_nStopBits = STOP_2;
}
else
{
m_nStopBits = STOP_1;
}
SetCommData.stop = m_nStopBits;
if(m_nDataBits == 0)
{
m_nDataBits = BIT_7;
}
else if(m_nDataBits == 1)
{
m_nDataBits = BIT_8;
}
else
{
m_nDataBits = BIT_7;
}
SetCommData.data = m_nDataBits;
SetCommData.ret_open = sio_open(SetCommData.port); //打开串口
if(SetCommData.ret_open !=SIO_OK)
{
AfxMessageBox("串口没有打开或已被占用");
}
else
{
sio_ioctl(SetCommData.port, SetCommData.baud, SetCommData.parity | SetCommData.data | SetCommData.stop ); //初始化
sio_flush(SetCommData.port,2); //清空输入输出缓冲区;
}
}
BOOL CComConfig::OnInitDialog()
{
CPropertyPage::OnInitDialog();
//对对话框的显示情况进行初始化
m_ctrlPort.AddString(_T("COM1"));
m_ctrlPort.AddString(_T("COM2"));
m_ctrlPort.AddString(_T("COM3"));
m_ctrlPort.AddString(_T("COM4"));
m_ctrlPort.AddString(_T("COM5"));
m_ctrlPort.AddString(_T("COM6"));
m_ctrlPort.AddString(_T("COM7"));
m_ctrlPort.AddString(_T("COM8"));
m_ctrlPort.AddString(_T("COM9"));
m_ctrlPort.SetCurSel(0);
m_ctrlParity.AddString(_T("NONE"));
m_ctrlParity.AddString(_T("EVEN"));
m_ctrlParity.AddString(_T("ODD"));
m_ctrlParity.SetCurSel(0);
m_ctrlBaud.AddString(_T("300"));
m_ctrlBaud.AddString(_T("600"));
m_ctrlBaud.AddString(_T("1200"));
m_ctrlBaud.AddString(_T("2400"));
m_ctrlBaud.AddString(_T("4800"));
m_ctrlBaud.AddString(_T("9600"));
m_ctrlBaud.AddString(_T("19200"));
m_ctrlBaud.AddString(_T("38400"));
m_ctrlBaud.AddString(_T("57600"));
m_ctrlBaud.AddString(_T("115200"));
m_ctrlBaud.SetCurSel(5);
m_ctrlStopBits.AddString(_T("1"));
m_ctrlStopBits.AddString(_T("2"));
m_ctrlStopBits.SetCurSel(0);
m_ctrlDataBits.AddString(_T("7"));
m_ctrlDataBits.AddString(_T("8"));
m_ctrlDataBits.SetCurSel(1);
return TRUE;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -