ceseries.h

来自「一个用VC++做的嵌入式GPS导航的程序」· C头文件 代码 · 共 69 行

H
69
字号
// CESeries.h: interface for the CCESeries class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_CESERIES_H__4984A1EB_BB8A_4DFF_8FA1_B7D716452301__INCLUDED_)
#define AFX_CESERIES_H__4984A1EB_BB8A_4DFF_8FA1_B7D716452301__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

//定义串口接收数据函数类型
typedef void (CALLBACK* ONSERIESREAD)(CWnd*,BYTE* buf,int bufLen);
//CE串口通信类
class CCESeries  
{
public:
	CCESeries();
	virtual ~CCESeries();
public:
	//打开串口
	BOOL OpenPort(CWnd* pPortOwner,//使用串口类,窗体句柄
					UINT portNo = 1,//串口号
					UINT baud	= 9600,//波特率
					UINT parity = NOPARITY,//奇偶校验
					UINT databits = 8,///*数据位*/
					UINT stopbits = 0///*停止位*/
					);
	//关闭串口
	void ClosePort();
	//设置串口读取,写入超时
	BOOL SetSeriesTimeouts(COMMTIMEOUTS CommTimeOuts);
	//向串口写入数据
	BOOL WritePort(const BYTE *buf,DWORD bufLen);

private:
	//已经打开的串口句柄
	HANDLE  m_hComm;
	CWnd* m_pPortOwner;
	//读写线程句柄
	HANDLE m_hReadThread;
	HANDLE m_hWriteThread;
	//读写线程ID标示
	DWORD m_dwReadThreadID;
	DWORD m_dwWriteThreadID;
	//读线程退出事件
	HANDLE m_hReadCloseEvent;
	//写线程退出事件
	HANDLE m_hWriteCloseEvent;
private:
	// 串口读线程函数
	static DWORD WINAPI ReadThreadFunc(LPVOID lparam);
	//串口写线程函数
	static DWORD WINAPI WriteThreadFunc(LPVOID lparam);
	//向串口写入数据
	static BOOL WritePort(HANDLE hComm,const BYTE *buf,DWORD bufLen);

	//关闭读线程
	void CloseReadThread();
	//关闭写线程
	void CloseWriteThread();
public:
	//串口读取回调函数
	ONSERIESREAD  m_OnSeriesRead;

};

#endif // !defined(AFX_CESERIES_H__4984A1EB_BB8A_4DFF_8FA1_B7D716452301__INCLUDED_)

⌨️ 快捷键说明

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