资源简介
龚建伟用CSerialPoet类写的例子

代码片段和文件信息
#include “stdafx.h“
#include “SerialPort.h“
#include
//
// Constructor
//
CSerialPort::CSerialPort()
{
m_hComm = NULL;
// initialize overlapped structure members to zero
m_ov.Offset = 0;
m_ov.OffsetHigh = 0;
// create events
m_ov.hEvent = NULL;
m_hWriteEvent = NULL;
m_hShutdownEvent = NULL;
m_szWriteBuffer = NULL;
m_nWriteSize=1;
m_bThreadAlive = FALSE;
}
//
// Delete dynamic memory
//
CSerialPort::~CSerialPort()
{
do
{
SetEvent(m_hShutdownEvent);
} while (m_bThreadAlive);
TRACE(“Thread ended\n“);
delete [] m_szWriteBuffer;
}
//
// Initialize the port. This can be port 1 to 4.
//
BOOL CSerialPort::InitPort(CWnd* pPortOwner // the owner (CWnd) of the port (receives message)
UINT portnr // portnumber (1..4)
UINT baud // baudrate
char parity // parity
UINT databits // databits
UINT stopbits // stopbits
DWORD dwCommEvents // EV_RXCHAR EV_CTS etc
UINT writebuffersize) // size to the writebuffer
{
assert(portnr > 0 && portnr < 5);
assert(pPortOwner != NULL);
// if the thread is alive: Kill
if (m_bThreadAlive)
{
do
{
SetEvent(m_hShutdownEvent);
} while (m_bThreadAlive);
TRACE(“Thread ended\n“);
}
// create events
if (m_ov.hEvent != NULL)
ResetEvent(m_ov.hEvent);
m_ov.hEvent = CreateEvent(NULL TRUE FALSE NULL);
if (m_hWriteEvent != NULL)
ResetEvent(m_hWriteEvent);
m_hWriteEvent = CreateEvent(NULL TRUE FALSE NULL);
if (m_hShutdownEvent != NULL)
ResetEvent(m_hShutdownEvent);
m_hShutdownEvent = CreateEvent(NULL TRUE FALSE NULL);
// initialize the event objects
m_hEventArray[0] = m_hShutdownEvent; // highest priority
m_hEventArray[1] = m_ov.hEvent;
m_hEventArray[2] = m_hWriteEvent;
// initialize critical section
InitializeCriticalSection(&m_csCommunicationSync);
// set buffersize for writing and save the owner
m_pOwner = pPortOwner;
if (m_szWriteBuffer != NULL)
delete [] m_szWriteBuffer;
m_szWriteBuffer = new char[writebuffersize];
m_nPortNr = portnr;
m_nWriteBufferSize = writebuffersize;
m_dwCommEvents = dwCommEvents;
BOOL bResult = FALSE;
char *szPort = new char[50];
char *szBaud = new char[50];
// now it critical!
EnterCriticalSection(&m_csCommunicationSync);
// if the port is already opened: close it
if (m_hComm != NULL)
{
CloseHandle(m_hComm);
m_hComm = NULL;
}
// prepare port strings
sprintf(szPort “COM%d“ portnr);
sprintf(szBaud “baud=%d parity=%c data=%d stop=%d“ baud parity databits stopbits);
// get a handle to the port
m_hComm = CreateFile(szPort // communication port string (COMX)
GENERIC_READ | GENERIC_WRITE // read/write types
0 // comm devices must be opened with exclusive access
NULL // no security attributes
OPEN_EXISTING // comm dev
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 12326 2014-10-30 08:18 SerialPortTest龚建伟\Debug\RCa01760
文件 12326 2014-10-30 08:17 SerialPortTest龚建伟\Debug\RCa02148
文件 12318 2014-10-30 08:18 SerialPortTest龚建伟\Debug\RCa02812
文件 12326 2014-10-30 08:16 SerialPortTest龚建伟\Debug\RCa02820
文件 12326 2014-10-30 08:22 SerialPortTest龚建伟\Debug\RCa03912
文件 12326 2014-10-30 08:28 SerialPortTest龚建伟\Debug\RCa03976
文件 27501 2014-10-30 08:30 SerialPortTest龚建伟\Debug\SerialPort.obj
文件 118925 2014-10-30 08:48 SerialPortTest龚建伟\Debug\SerialPortTest.exe
文件 262196 2014-10-30 08:48 SerialPortTest龚建伟\Debug\SerialPortTest.ilk
文件 15416 2014-10-30 08:30 SerialPortTest龚建伟\Debug\SerialPortTest.obj
文件 5628828 2014-10-30 08:30 SerialPortTest龚建伟\Debug\SerialPortTest.pch
文件 418816 2014-10-30 08:48 SerialPortTest龚建伟\Debug\SerialPortTest.pdb
文件 2984 2014-10-30 08:30 SerialPortTest龚建伟\Debug\SerialPortTest.res
文件 30774 2014-10-30 08:48 SerialPortTest龚建伟\Debug\SerialPortTestDlg.obj
文件 106124 2014-10-30 08:30 SerialPortTest龚建伟\Debug\StdAfx.obj
文件 197632 2014-10-30 08:48 SerialPortTest龚建伟\Debug\vc60.idb
文件 364544 2014-10-30 08:48 SerialPortTest龚建伟\Debug\vc60.pdb
文件 3723 2004-01-30 22:43 SerialPortTest龚建伟\ReadMe.txt
文件 1078 2010-04-13 13:55 SerialPortTest龚建伟\res\SerialPortTest.ico
文件 406 2010-04-13 13:55 SerialPortTest龚建伟\res\SerialPortTest.rc2
文件 922 2004-02-01 12:25 SerialPortTest龚建伟\RESOURCE.H
文件 18440 2004-02-13 23:13 SerialPortTest龚建伟\SerialPort.cpp
文件 2746 2004-01-28 01:27 SerialPortTest龚建伟\SerialPort.h
文件 22024 2014-10-30 08:30 SerialPortTest龚建伟\SerialPortTest.aps
文件 1549 2014-10-30 08:50 SerialPortTest龚建伟\SerialPortTest.clw
文件 2175 2004-01-30 22:43 SerialPortTest龚建伟\SerialPortTest.cpp
文件 4435 2004-01-30 23:15 SerialPortTest龚建伟\SerialPortTest.dsp
文件 553 2004-01-30 23:18 SerialPortTest龚建伟\SerialPortTest.dsw
文件 1412 2004-01-30 22:43 SerialPortTest龚建伟\SerialPortTest.h
文件 132096 2014-10-30 08:50 SerialPortTest龚建伟\SerialPortTest.ncb
............此处省略13个文件信息
- 上一篇:网络嗅探器源代码--C++
- 下一篇:Hash算法之SHA1实现c++
相关资源
- 基于MFC的TCP调试助手源码95706
- 基于mfc的多线程文件传输
- VC++ 多线程文件读写操作
- 移木块游戏,可以自编自玩,vc6.0编写
- MFC数字钟(基于VC6.0)
- VC++MFC小游戏实例教程(实例)+MFC类库
- VC++实现CMD命令执行与获得返回信息
- ChartCtrl控件库(可在VS2019中使用)
- 商品库存管理系统 C++ MFC
- Qt5串口通信-windows
- mfc 调用redis
- MFC视频播放器源码(支持avi/wma/mp3等格
- VC++基于OpenGL模拟的一个3维空间模型
- mfc绘图大全(画直线、矩形、椭圆)
- MFC控件重绘
- hook,捕获所有案件,查找所有窗口,
- (学习)VS2010之MFC入门到精通教程
- 基于VC++的SolidWorks二次开发SolidWorks
- MFC文档_视图_框架_模板结构体系深入
- 简单员工管理系统(适合初学MFC)
- 派克变换VC++源码(附文档)
- VC++ 串口
- MFC五子棋游戏
- VC++ 大富翁4_大富翁游戏源码
- MFC UDP编程
- MFC的异步网络通讯应用程序
- VC++ 摄像头视频采集与回放源程序
- C++MFC模块讲解,黑发程序员课程整理
- 转 VC++ 实现电子邮件(Email)发送
- 串口数据采集及显示
评论
共有 条评论