serial.h

来自「一个方便又实用的C++程序」· C头文件 代码 · 共 49 行

H
49
字号
#include <windows.h>

class Serial
{
public:
	
	enum
	{
		RECV_BUFFER_SIZE=2048,
	};
	enum
	{
		WRITE_BUFFER_SIZE=2048,
	};
	Serial();
	~Serial();
	void Open(const char* pPort,DWORD dwBaud);
	void Close();

	BOOL WriteComm(const char*lpbuf,DWORD size);
	BOOL ReadComm(DWORD NumOfBytes=512);
	BOOL WaitForWriteComplete(DWORD dwMilliseconds);
	BOOL WaitForReadComplete(DWORD dwMilliseconds);
	
	HANDLE GetCommHandle() const;
	BOOL IsOpen() const;

	const char* GetBuffer() const;
	DWORD GetRecvSize() const;
	
	BOOL SetCommEventMask(DWORD dwEvtMask);
	BOOL WaitForCommEvent(DWORD dwMilliseconds);
	void ResetCommEvent();

	BOOL DCBSetting(DCB*lpdcb);
	DWORD GetCharSizeInBuf();
	DWORD dwRead;
	char recvBuf[RECV_BUFFER_SIZE];
	void FlushBuffer();
private:	
	HANDLE hComm;	
	OVERLAPPED ovRead;
	OVERLAPPED ovWrite;
	OVERLAPPED ovCommEvent;	
	DWORD dwWrite;	
	BOOL fWaitingOnWrite;
	BOOL fWaitingOnRead;
	DWORD dwWaitEvtMask;
};

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?