⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cecomm.h

📁 windows CE下面的简单的串口调试工具
💻 H
字号:
//////////////////////////////////////////////////////////////////////
// CEComm.h: interface for the CCEComm class.
//////////////////////////////////////////////////////////////////////
//
//使用时利用该类实例化一对象,首先定义一个静态私有函数作为回调函数初始化
//m_OnSeriesRead成员变量,然后打开串口,发送时调用WritePort方法,读取自动完成,
//SetSeriesTimeouts方法用于设置串口读取写超时,结束时调用ClosePort方法
//
//example:
//
//CCEComm m_CEComm; //定义串口类
//
//static void CLASS::OnSeriesRead(CWnd* pWnd,BYTE* buf,int bufLen); //定义读串口回调函数
//{
// 	 CDlg *pDlg = (CDlg *)pWnd;
//	 CEdit * pEdit = (CEdit*)pDlg->GetDlgItem(IDC_EDIT);
//
//   CString strRecv = (char*)buf;
//   CString strOld;
//	 pEdit->GetWindowText(strOld);
//	 pEdit->SetWindowText(strOld + strRecv);
//
//   delete[] buf;
//}
//
//m_CEComm.m_OnSeriesRead = OnSeriesRead;
//
//
//
//////////////////////////////////////////////////////////////////////

#pragma once

//定义串口接收数据函数类型
typedef void (CALLBACK* ONSERIESREAD)(CWnd* pWnd,BYTE* buf,int bufLen);

//定义向写线程发送的消息常量
const CM_THREADCOMMWRITE = WM_USER+110;


//CE串口通讯类
class CCEComm
{

public:
	CCEComm();
	virtual ~CCEComm();
public:
	//打开串口
    
	//设置串口参数
	BOOL GetSeriesState(DCB* pCommParam);
	BOOL SetSeriesState(DCB* pCommParam);
	void ConfigPort();
	//关闭串口
	void ClosePort();
	void CloseWrite();
	void CloseRead();
	//设置串口读取、写入超时
	BOOL SetSeriesTimeouts(COMMTIMEOUTS* pCommTimeOuts);
	//向串口写入数据
	BOOL SendPort(const BYTE *buf,int bufLen);
	BOOL SendPort(LPCTSTR szSend);
	BOOL SendPortU(LPCTSTR szSend);

	//设置串口回调函数
	void SetPortReceive(CWnd* pWnd,ONSERIESREAD proc);
	void SetCloseDelayTime(UINT t);

private:
    //串口读线程函数
    static DWORD WINAPI ReadThreadFunc(LPVOID lparam);
	//串口写线程函数
    static DWORD WINAPI WriteThreadFunc(LPVOID lparam);

	//向串口写入数据
	static BOOL WritePort(HANDLE hComm,const BYTE *buf,DWORD bufLen);

private:
    //已打开的串口句柄
	HANDLE	m_hComm;
	CWnd* m_pPortOwner;
	BYTE m_nPort;

	//读写线程句柄
	HANDLE m_hReadThread;
	HANDLE m_hWriteThread;

	//读写线程ID标识
	DWORD m_dwReadThreadID;
	DWORD m_dwWriteThreadID;

	//读写线程退出事件
	HANDLE m_hReadCloseEvent;
	HANDLE m_hWriteCloseEvent;
	UINT m_nCloseDelayTime;

public:
	virtual BOOL OpenPort(BYTE  portNo= 1,DWORD baud	= 9600,BYTE  parity= NOPARITY,BYTE  databits = 8,BYTE  stopbits = ONESTOPBIT,DWORD  maxblock = 512);
	ONSERIESREAD m_OnSeriesRead; //串口读取回调函数

};

⌨️ 快捷键说明

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