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

📄 comconfig.cpp

📁 最近做的一款温湿度变送器的上位软件
💻 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 + -