📄 portctl.h
字号:
// SerialCtl.h: interface for the SerialCtl class.
//
//////////////////////////////////////////////////////////////////////
#if !defined(AFX_SERIALCTL_H__EBE94BCF_8352_44EF_B11D_5DF017064C65__INCLUDED_)
#define AFX_SERIALCTL_H__EBE94BCF_8352_44EF_B11D_5DF017064C65__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#include <Afxmt.h>
#define XON 0x11
#define XOFF 0x13
#define INBUF 409600
#define OUTBUF 409600
#define READBUFLEN 50
#define MAXNUM 409600
#define WM_SERIALGET WM_USER + 50
// 监听串口线程
UINT hCommWatchPro(LPVOID pParam);
class AFX_CLASS_EXPORT SerialCtl
{
public:
SerialCtl();
// 打开通信串口
void OpenSerial();
// 关闭通信串口
void CloseSerial();
// 串口设置
void SetSerial(CString Com = "COM1", long Baud = 9600, int Data = 8, int End = 1, CString Parity = "NONE");
// 写串口
BOOL WriteSerial(const BYTE * SendData, const DWORD SendLen);
// 读串口
void ReadSerial(BYTE * resData, int * length);
// 读串口2(针对IPC设计)
int ReadSerial2(BYTE * resData, int length);
// 清空串口缓冲区
void ClearSerialBuf();
// 监听串口
void ListenSerial(long delayRead = 100, long circleTimeSpan = 100);
// 停止监听串口
void StopListenSerial();
// 判断串口是否打开
bool IsSerialOpen();
// 得到版本信息
CString GetVersion();
// 得到版本信息
float GetVer();
//
BOOL isCanSend();
// Attributes
public:
// 串口结构
struct SERIAL
{
char COM[10];
unsigned long BAUD;
unsigned int DATA;
unsigned int END;
unsigned char PARITY;
};
// Operations
public:
HANDLE hCom;
OVERLAPPED m_OverRead;
COMSTAT ComStat;
long DelayRead,
CircleTimeSpan;
long m_lParam; // 消息参数(如:CDM1000、ASM...)
private:
SERIAL Serial;
DCB dcb;
COMMCONFIG CommConfig;
OVERLAPPED m_OverWrite;
HANDLE hCommWatchThread;
BYTE Data[MAXNUM];
char strData[MAXNUM];
bool OPEN_FLAG;
};
#endif // !defined(AFX_SERIALCTL_H__EBE94BCF_8352_44EF_B11D_5DF017064C65__INCLUDED_)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -