📄 rs232_dlg.cpp
字号:
// RS232_DLG.cpp : implementation file
//
#include "stdafx.h"
#include "Demo_01Doc.h"
#include "Demo_01.h"
#include "RS232_DLG.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CRS232_DLG dialog
CRS232_DLG::CRS232_DLG(CWnd* pParent /*=NULL*/)
: CDialog(CRS232_DLG::IDD, pParent)
{
//{{AFX_DATA_INIT(CRS232_DLG)
m_baud_1 = -1;
m_baud_2 = -1;
m_databit_1 = -1;
m_databit_2 = -1;
m_parity_1 = -1;
m_parity_2 = -1;
m_stopbit_1 = -1;
m_stopbit_2 = -1;
m_send1 = _T("");
m_send2 = _T("");
//}}AFX_DATA_INIT
}
void CRS232_DLG::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CRS232_DLG)
DDX_CBIndex(pDX, IDC_BAUD_RATE1, m_baud_1);
DDX_CBIndex(pDX, IDC_BAUD_RATE2, m_baud_2);
DDX_CBIndex(pDX, IDC_DATABIT1, m_databit_1);
DDX_CBIndex(pDX, IDC_DATABIT2, m_databit_2);
DDX_CBIndex(pDX, IDC_PARITY1, m_parity_1);
DDX_CBIndex(pDX, IDC_PARITY2, m_parity_2);
DDX_CBIndex(pDX, IDC_STOPBIT1, m_stopbit_1);
DDX_CBIndex(pDX, IDC_STOPBIT2, m_stopbit_2);
DDX_Text(pDX, IDC_COM_SEND1, m_send1);
DDX_Text(pDX, IDC_COM_SEND2, m_send2);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CRS232_DLG, CDialog)
//{{AFX_MSG_MAP(CRS232_DLG)
ON_BN_CLICKED(IDC_OPEN_COM2, OnOpenCom2)
ON_BN_CLICKED(IDC_OPEN_COM3, OnOpenCom3)
ON_BN_CLICKED(IDC_PORT_SEND1, OnPortSend1)
ON_BN_CLICKED(IDC_PORT_SEND2, OnPortSend2)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CRS232_DLG message handlers
//****************************************************************************
BOOL CRS232_DLG::OnInitDialog()
{
CDialog::OnInitDialog();
// TODO: Add extra initialization here
//----------------- Demo_01 add -------------------
// initial set COM Port parameter
m_baud_1= 0;
m_baud_2= 0;
m_parity_1= 0;
m_parity_2= 0;
m_databit_1= 1;
m_databit_2= 1;
m_stopbit_1= 0;
m_stopbit_2= 0;
m_COM2= false; m_COM3= false;
UpdateData(FALSE);
//--------------- end of add ----------------------
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
//****************************************************************************
void CRS232_DLG::OnOpenCom2()
{
// TODO: Add your control notification handler code here
//----------------- Demo_01 add -------------------
int baud, databit, stopbit, flow;
char parity;
CString msg;
UpdateData(TRUE);
if(m_COM2) return;
if(m_baud_1 ==0) baud=9600;
else if(m_baud_1 ==1) baud=19200;
else if(m_baud_1 ==2) baud=38400;
else if(m_baud_1 ==3) baud=57600;
else { baud= 9600; m_baud_1= 0; }
if(m_parity_1==0) parity= 'N';
else if(m_parity_1==1) parity= 'E';
else if(m_parity_1==2) parity= 'O';
else { parity= 'N'; m_parity_1= 0; }
if(m_databit_1==0) databit=7;
else if(m_databit_1==1) databit=8;
else { databit= 7; m_databit_1= 0; }
if(m_stopbit_1==0) stopbit=1;
else if(m_stopbit_1==1) stopbit=2;
else { stopbit=1; m_stopbit_1= 0; }
flow=0;
if( seropen(2, baud, parity, databit, stopbit, flow)==false)
{
msg.Format(_T("Open COM2 error...."));
AfxMessageBox(msg, MB_OK);
return;
}
msg.Format(_T("Open COM2 OK...."));
AfxMessageBox(msg, MB_OK);
m_COM2= true;
UpdateData(FALSE);
//--------------- end of add ----------------------
}
//****************************************************************************
void CRS232_DLG::OnOpenCom3()
{
// TODO: Add your control notification handler code here
//----------------- Demo_01 add -------------------
int baud, databit, stopbit, flow;
char parity;
CString msg;
UpdateData(TRUE);
if(m_COM3) return;
if(m_baud_2 ==0) baud=9600;
else if(m_baud_2 ==1) baud=19200;
else if(m_baud_2 ==2) baud=38400;
else if(m_baud_2 ==3) baud=57600;
else { baud= 9600; m_baud_2= 0; }
if(m_parity_2==0) parity= 'N';
else if(m_parity_2==1) parity= 'E';
else if(m_parity_2==2) parity= 'O';
else { parity= 'N'; m_parity_2= 0; }
if(m_databit_2==0) databit=7;
else if(m_databit_2==1) databit=8;
else { databit= 7; m_databit_2= 0; }
if(m_stopbit_2==0) stopbit=1;
else if(m_stopbit_2==1) stopbit=2;
else { stopbit=2; m_stopbit_2= 0; }
flow=0;
if( seropen(3, baud, parity, databit, stopbit, flow)==false)
{
msg.Format(_T("Open COM3 error...."));
AfxMessageBox(msg, MB_OK);
return;
}
msg.Format(_T("Open COM3 OK...."));
AfxMessageBox(msg, MB_OK);
m_COM3= true;
UpdateData(FALSE);
//--------------- end of add ----------------------
}
//****************************************************************************
void CRS232_DLG::OnPortSend1()
{
// TODO: Add your control notification handler code here
//----------------- Demo_01 add -------------------
char buff[256];
int len;
UpdateData(TRUE);
if(m_COM2==false) return;
memset(buff, 0, sizeof(buff));
len= m_send1.GetLength();
wcstombs(buff, m_send1, len);
len= strlen(buff);
serwrite(2, buff, len);
//--------------- end of add ----------------------
}
//****************************************************************************
void CRS232_DLG::OnPortSend2()
{
// TODO: Add your control notification handler code here
//----------------- Demo_01 add -------------------
char buff[256];
int len;
UpdateData(TRUE);
if(m_COM3==false) return;
memset(buff, 0, sizeof(buff));
len= m_send2.GetLength();
wcstombs(buff, m_send2, len);
len= strlen(buff);
serwrite(3, buff, len);
//--------------- end of add ----------------------
}
//****************************************************************************
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -