?? ceseries.h
字號(hào):
// CESeries.h: interface for the CCESeries class.
//
//////////////////////////////////////////////////////////////////////
#if !defined(AFX_CESERIES_H__4040241A_FA58_4655_88BA_8D8DF018446D__INCLUDED_)
#define AFX_CESERIES_H__4040241A_FA58_4655_88BA_8D8DF018446D__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
//定義串口接收數(shù)據(jù)函數(shù)類(lèi)型
typedef void (CALLBACK* ONSERIESREAD)(CWnd*,BYTE* buf,int bufLen);
//CE串口通訊類(lèi)
class CCESeries
{
public:
CCESeries();
virtual ~CCESeries();
public:
//打開(kāi)串口
BOOL OpenPort(CWnd* pPortOwner, /*使用串口類(lèi),窗體句柄*/
UINT portNo = 1, /*串口號(hào)*/
UINT baud = 9600, /*波特率*/
UINT parity = NOPARITY, /*奇偶校驗(yàn)*/
UINT databits = 8, /*數(shù)據(jù)位*/
UINT stopbits = 0 /*停止位*/
);
//關(guān)閉串口
void ClosePort();
//設(shè)置串口讀取、寫(xiě)入超時(shí)
BOOL SetSeriesTimeouts(COMMTIMEOUTS CommTimeOuts);
//向串口寫(xiě)入數(shù)據(jù)
BOOL WritePort(const BYTE *buf,DWORD bufLen);
private:
//串口讀線(xiàn)程函數(shù)
static DWORD WINAPI ReadThreadFunc(LPVOID lparam);
//串口寫(xiě)線(xiàn)程函數(shù)
static DWORD WINAPI WriteThreadFunc(LPVOID lparam);
//向串口寫(xiě)入數(shù)據(jù)
static BOOL WritePort(HANDLE hComm,const BYTE *buf,DWORD bufLen);
//關(guān)閉讀線(xiàn)程
void CloseReadThread();
//關(guān)閉寫(xiě)線(xiàn)程
void CloseWriteThread();
private:
//已打開(kāi)的串口句柄
HANDLE m_hComm;
CWnd* m_pPortOwner;
//讀寫(xiě)線(xiàn)程句柄
HANDLE m_hReadThread;
HANDLE m_hWriteThread;
//讀寫(xiě)線(xiàn)程ID標(biāo)識(shí)
DWORD m_dwReadThreadID;
DWORD m_dwWriteThreadID;
//讀線(xiàn)程退出事件
HANDLE m_hReadCloseEvent;
//寫(xiě)線(xiàn)程退出事件
HANDLE m_hWriteCloseEvent;
public:
ONSERIESREAD m_OnSeriesRead; //串口讀取回調(diào)函數(shù)
};
#endif // !defined(AFX_CESERIES_H__4040241A_FA58_4655_88BA_8D8DF018446D__INCLUDED_)
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -