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