?? serialport.h
字號:
// SerialPort.h: interface for the CSerialPort class.
//
//////////////////////////////////////////////////////////////////////
//---------------------------------------------------------------
//
// 作者: 徐進(jìn)林
#if !defined(AFX_SERIALPORT_H__17EB47C2_4E28_443C_BCBC_0620E25028F4__INCLUDED_)
#define AFX_SERIALPORT_H__17EB47C2_4E28_443C_BCBC_0620E25028F4__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#include <afxtempl.h>
const int MAXBLOCK = 2048;
//校驗(yàn)方式
const int PARITYNONE = 0;
const int PARITYODD = 1;
const int PARITYEVEN = 2;
const int PARITYMARK = 3;
const int PARITYSPACE = 4;
//停止位
const int STOPBITONE = 1;
const int STOPBITONE5 = 15;
const int STOPBITTWO = 2;
class CSerialPort
{
public:
CSerialPort();
virtual ~CSerialPort();
private:
BOOL ConfigCom(void);
//BOOL ConfigCom( int nBaudRate,int nByteSize,int nStopBits,int nParity);
public:
//初始化串口
BOOL InitComPort(const int nComPort = 1,
const int nBaudRate = 9600,
const int nByteSize = 8,
const int nStopBits = 1,
const int nParity = 0
);
//重新設(shè)置通訊方式
BOOL ResetComPort(const int nBaudRate = 9600,
const int nByteSize = 8,
const int nStopBits = 1,
const int nParity = 0
);
//讀取字符
BOOL RecvChar(void);
//從串口輸入緩沖區(qū)讀入一個字符
BOOL ReadCom(char &chIn);
BOOL ReadCom(unsigned char &chIn);
//向串口寫一個字符
BOOL WriteCom(char chOut);
//向串口寫一個字
BOOL WriteCom(WORD wOut);
//從串口輸入緩沖區(qū)讀取指定長度的字符
DWORD ReadCom(char *pszBuff, DWORD dwLength);
//把指定長度的字符串寫到串口
DWORD WriteCom(char *pszBuff, DWORD dwLength = -1);
//接收緩沖區(qū)是否為空
BOOL IsRecvBuffEmpty(void);
//清空緩沖區(qū)
void ClearBuff(void);
//開始監(jiān)視串口
BOOL StartMonitor(void);
//停止監(jiān)視串口
BOOL StopMonitor(void);
//是否處于監(jiān)視串口的狀態(tài)
BOOL IsInMonitor(void);
//初始化串口是否成功
BOOL IsInitComOk(void);
//關(guān)閉串口
void CloseCom(void);
private:
//用于重疊讀
OVERLAPPED m_osRead;
//用于重疊寫
OVERLAPPED m_osWrite;
//代表輔助線程
CWinThread* m_pThread;
int m_nFlowCtrl;
int m_nBaudRate;
int m_nByteSize;
int m_nParity;
int m_nStopBits;
CString m_szPort;
CList <char, char> m_CharList;
BOOL m_bInitComOk;
public:
CFile m_File00;
int stase,zero,type,bb,band_select;
//CEdit m_Stase;
//是否處于監(jiān)聽狀態(tài)
volatile BOOL m_bMonitoring;
//可以讀數(shù)據(jù)的事件對象
volatile HANDLE m_hCanReadEvent;
//串行口句柄
volatile HANDLE m_hCom;
CRITICAL_SECTION m_csComSync;
};
#endif // !defined(AFX_SERIALPORT_H__17EB47C2_4E28_443C_BCBC_0620E25028F4__INCLUDED_)
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -