?? serialcom.h
字號:
// SerialCom.h: interface for the CSerialCom class.
//
//////////////////////////////////////////////////////////////////////
#if !defined(AFX_SERIALCOM_H__41E441F1_BB8F_43F9_9578_0193A41EA569__INCLUDED_)
#define AFX_SERIALCOM_H__41E441F1_BB8F_43F9_9578_0193A41EA569__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
const int CRC_CHECKSUM = 0;
const int BCC_CHECKSUM = 1;
const int LRC_CHECKSUM = 2;
const UINT MAXBLOCK = 2048;
const UINT XON = 0x11;
const UINT XOFF = 0x13;
const UINT INITTIMER = 1003;
const UINT BYTENUMBER = 256;
UINT CommProc(LPVOID pParam);
UINT ReadSerialThread(LPVOID pParam);
class CSerialCom : public CObject
{
public:
CSerialCom();
virtual ~CSerialCom();
public:
volatile BOOL m_bConnected; //連接標志 FALSE -- 串口關閉,TRUE -- 串口打開
volatile BOOL m_bSerialSelected;
volatile HANDLE m_hCom; // 串行口句柄
HTREEITEM hItemSerial;
public:
unsigned char RecvBuf[256];
unsigned char SendBuf[256];
unsigned char tmpRecvBuf[256];
public:
CString m_sPort; //端口號
UINT m_nBaud; //波特率
UINT m_nDataBits; //數據位
UINT m_nStopBits; //停止位
UINT m_nParity; //校驗位
UINT m_nFlowCtrl; //流控制
UINT m_nRespond_TimeOut;
COMMTIMEOUTS ComTimeOuts; //超時結構
int m_nProtocol; //協議
public:
BOOL CalculateChecksum(unsigned char * pByte, int nNumberOfBytes,
unsigned short *pChecksum, int nChecksumMode /* = BCC_CHECKSUM */);
void CalculateBCC(unsigned char * pByte, int nNumberOfBytes, unsigned short *pChecksum);
void CalculateCRC(unsigned char *pByte, int nNumberOfBytes, unsigned short *pChecksum);
void CalculateLRC(unsigned char *pByte, int nNumberOfBytes, unsigned short *pChecksum);
BOOL ConfigConnection(HANDLE m_hCom); // 配置連接參數
BOOL OpenConnection(); // 打開參數
BOOL CloseConnection(); // 關閉連接
DWORD ReadComm(HANDLE m_hCom,unsigned char *buf,DWORD dwLength); //讀串口數據
DWORD WriteComm(HANDLE m_hCom,unsigned char *buf,DWORD dwLength);//發送串口數據
protected:
CWinThread* m_pThread; // 監視串口的線程
CWinThread* m_pReadSerialThread;
public:
OVERLAPPED m_osRead, m_osWrite; // 用于重疊讀/寫
volatile HANDLE m_hPostMsgEvent; // 用于同步讀線程的事件對象
volatile HANDLE m_hReadSerialEvent;// 用于通知讀線程的事件對象
protected:
public:
};
#endif // !defined(AFX_SERIALCOM_H__41E441F1_BB8F_43F9_9578_0193A41EA569__INCLUDED_)
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -