📄 serialport.h
字号:
// SerialPort.h: interface for the CSerialPort class.
//
//////////////////////////////////////////////////////////////////////
//---------------------------------------------------------------
//
// 作者: 徐进林
#if !defined(AFX_SERIALPORT_H__17EB47C2_4E28_443C_BCBC_0620E25028F4__INCLUDED_)
#define AFX_SERIALPORT_H__17EB47C2_4E28_443C_BCBC_0620E25028F4__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#include <afxtempl.h>
const int MAXBLOCK = 2048;
//校验方式
const int PARITYNONE = 0;
const int PARITYODD = 1;
const int PARITYEVEN = 2;
const int PARITYMARK = 3;
const int PARITYSPACE = 4;
//停止位
const int STOPBITONE = 1;
const int STOPBITONE5 = 15;
const int STOPBITTWO = 2;
class CSerialPort
{
public:
CSerialPort();
virtual ~CSerialPort();
private:
BOOL ConfigCom(void);
//BOOL ConfigCom( int nBaudRate,int nByteSize,int nStopBits,int nParity);
public:
//初始化串口
BOOL InitComPort(const int nComPort = 1,
const int nBaudRate = 9600,
const int nByteSize = 8,
const int nStopBits = 1,
const int nParity = 0
);
//重新设置通讯方式
BOOL ResetComPort(const int nBaudRate = 9600,
const int nByteSize = 8,
const int nStopBits = 1,
const int nParity = 0
);
//读取字符
BOOL RecvChar(void);
//从串口输入缓冲区读入一个字符
BOOL ReadCom(char &chIn);
BOOL ReadCom(unsigned char &chIn);
//向串口写一个字符
BOOL WriteCom(char chOut);
//向串口写一个字
BOOL WriteCom(WORD wOut);
//从串口输入缓冲区读取指定长度的字符
DWORD ReadCom(char *pszBuff, DWORD dwLength);
//把指定长度的字符串写到串口
DWORD WriteCom(char *pszBuff, DWORD dwLength = -1);
//接收缓冲区是否为空
BOOL IsRecvBuffEmpty(void);
//清空缓冲区
void ClearBuff(void);
//开始监视串口
BOOL StartMonitor(void);
//停止监视串口
BOOL StopMonitor(void);
//是否处于监视串口的状态
BOOL IsInMonitor(void);
//初始化串口是否成功
BOOL IsInitComOk(void);
//关闭串口
void CloseCom(void);
private:
//用于重叠读
OVERLAPPED m_osRead;
//用于重叠写
OVERLAPPED m_osWrite;
//代表辅助线程
CWinThread* m_pThread;
int m_nFlowCtrl;
int m_nBaudRate;
int m_nByteSize;
int m_nParity;
int m_nStopBits;
CString m_szPort;
CList <char, char> m_CharList;
BOOL m_bInitComOk;
public:
CFile m_File00;
int stase,zero,type,bb,band_select;
//CEdit m_Stase;
//是否处于监听状态
volatile BOOL m_bMonitoring;
//可以读数据的事件对象
volatile HANDLE m_hCanReadEvent;
//串行口句柄
volatile HANDLE m_hCom;
CRITICAL_SECTION m_csComSync;
};
#endif // !defined(AFX_SERIALPORT_H__17EB47C2_4E28_443C_BCBC_0620E25028F4__INCLUDED_)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -