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

📄 serialportconfig.cpp

📁 功能主要是串口通信和网络通信方面的
💻 CPP
字号:
// SerialPortConfig.cpp : implementation file
//

#include "stdafx.h"
#include "FakeTolcan.h"
#include "SerialPortConfig.h"

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

/////////////////////////////////////////////////////////////////////////////
// CSerialPortConfig dialog


CSerialPortConfig::CSerialPortConfig(CWnd* pParent /*=NULL*/)
	: CDialog(CSerialPortConfig::IDD, pParent)
{
	//{{AFX_DATA_INIT(CSerialPortConfig)
		// NOTE: the ClassWizard will add member initialization here
	//}}AFX_DATA_INIT
	m_nBaud=0;
	m_nCom=0;
	m_cParity=' ';
	m_nDatabits=0;
	m_nStopbits=0;
	m_nBufferSize = 0;
	m_bClosePort = FALSE;
}


void CSerialPortConfig::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CSerialPortConfig)
		// NOTE: the ClassWizard will add DDX and DDV calls here
	DDX_Control(pDX, IDC_COMBO_PARITY, m_Parity);
	DDX_Control(pDX, IDC_COMBO_STOPBITS, m_StopBits);
	DDX_Control(pDX, IDC_COMBO_SPEED, m_Speed);
	DDX_Control(pDX, IDC_COMBO_DATABITS, m_DataBits);
	DDX_Control(pDX, IDC_COMBO_COMSELECT, m_Com);
	DDX_Control(pDX, IDC_COMBO_BUFFER, m_Buffer);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CSerialPortConfig, CDialog)
	//{{AFX_MSG_MAP(CSerialPortConfig)
	ON_BN_CLICKED(IDC_BTN_CLOSE_PORT, OnBtnClosePort)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CSerialPortConfig message handlers

BOOL CSerialPortConfig::OnInitDialog() 
{
	CDialog::OnInitDialog();
	
	// TODO: Add extra initialization here
	for(int i=0;i<256;i++)
	{
		CString strCom, str;
		strCom = "COM";
		str.Format("%d", i + 1);
		strCom += str;
		m_Com.AddString(strCom);
	}

	if (m_nCom)
	{
		m_Com.SetCurSel(m_nCom - 1);
	}

	CString strBaud;
	strBaud.Format("%d", m_nBaud);
	int iIndex = m_Speed.FindString(0, strBaud);
	m_Speed.SetCurSel(iIndex);

	switch(m_cParity)
	{
	case 'N':
		m_Parity.SetCurSel(0);
		break;
	case 'O':
		m_Parity.SetCurSel(1);
		break;
	case 'E':
		m_Parity.SetCurSel(2);
		break;
	}

	CString strDataBits;
	strDataBits.Format("%d", m_nDatabits);
	iIndex = m_DataBits.FindString(0, strDataBits);
	m_DataBits.SetCurSel(iIndex);

	CString strStopBits;
	strStopBits.Format("%d", m_nStopbits);
	iIndex = m_StopBits.FindString(0, strStopBits);
	m_StopBits.SetCurSel(iIndex);
	
	CString strBuffer;
	strBuffer.Format("%d", m_nBufferSize);
	iIndex = m_Buffer.FindString(0, strBuffer);
	m_Buffer.SetCurSel(iIndex);
// 	m_nBaud=9600;
// 	m_nCom=1;
// 	m_cParity='N';
// 	m_nDatabits=8;
// 	m_nStopbits=1;

	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}

void CSerialPortConfig::OnOK() 
{
	// TODO: Add extra validation here
	m_nCom = m_Com.GetCurSel() + 1;
	
	char temp;
	int i=m_Parity.GetCurSel();
	switch(i)
	{
	case 0:
		temp='N';
		break;
	case 1:
		temp='O';
		break;
	case 2:
		temp='E';
		break;
	}
	m_cParity=temp;
	
	int j=m_Speed.GetCurSel();
	switch(j)
	{
	case 0:
		j=300;
		break;
	case 1:
		j=600;
		break;
	case 2:
		j=1200;
		break;
	case 3:
		j=2400;
		break;
	case 4:
		j=4800;
		break;
	case 5:
		j=9600;
		break;
	case 6:
		j=19200;
		break;
	case 7:
		j=38400;
		break;
	case 8:
		j=43000;
		break;
	case 9:
		j=56000;
		break;
	case 10:
		j=57600;
		break;
	case 11:
		j=115200;
		break;
	default:
		break;
		
	}
	m_nBaud=j;
	
	int k=m_StopBits.GetCurSel();
	switch(k)
	{
	case 0:
		k=1;
		break;
	case 1:
		k=2;
		break;
	}
	m_nStopbits=k;
	
	
	int l=m_DataBits.GetCurSel();
	switch(l)
	{
	case 0:
		l=8;
		break;
	case 1:
		l=7;
		break;
	case 2:
		l=6;
		break;
	}
	m_nDatabits=l;

	CString strBufferSize;
	m_Buffer.GetWindowText(strBufferSize);
	m_nBufferSize = atoi(strBufferSize);
	m_bClosePort = FALSE;

	CDialog::OnOK();
}

void CSerialPortConfig::OnBtnClosePort() 
{
 	// TODO: Add your control notification handler code here
//	MessageBox("IDC_BTN_CLOSE_PORT");
 	m_bClosePort = TRUE;
	this->EndDialog(2000);
}

void CSerialPortConfig::OnCancel() 
{
	// TODO: Add extra cleanup here
//	m_bClosePort = TRUE;
	CDialog::OnCancel();
}
/**/

⌨️ 快捷键说明

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