亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? serialport.h

?? GSM通訊串口類,通過RS232串口與GSM MODEM連接,發送短信.
?? H
字號:
// SerialPort.h: interface for the CSerialPort class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_SERIALPORT_H__9E263F73_9037_4DFD_A391_5176DC806079__INCLUDED_)
#define AFX_SERIALPORT_H__9E263F73_9037_4DFD_A391_5176DC806079__INCLUDED_

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

class CSerialException : public CException
{
public:
//Constructors / Destructors
	CSerialException(DWORD dwError);
	~CSerialException();

	static void ThrowSerialException(DWORD dwError = 0);

//Methods
#ifdef _DEBUG
	virtual void Dump(CDumpContext& dc) const;
#endif
	virtual BOOL GetErrorMessage(LPTSTR lpstrError, UINT nMaxError,	PUINT pnHelpContext = NULL);
	CString GetErrorMessage();

//Data members
	DWORD m_dwError;

protected:
	DECLARE_DYNAMIC(CSerialException)
};

typedef struct tagCOMMDATA {
	LPVOID	pParam;
	DWORD	dwParamCount;
} COMMDATA;

class CSerialPort : public CObject  
{
public:
//構造/析構函數
	CSerialPort();
	virtual ~CSerialPort();

public:
//串口操作的基本方法
	void InitPort(CWnd* pPortOwner, UINT nPortNr = 1, UINT baud = 9600, char parity = 'N', UINT databits = 8,
		UINT stopsbits = 1, DWORD dwCommEvents = EV_RXCHAR | EV_TXEMPTY, UINT nBufferSize = 1024);
	void ClosePort(void) { ASSERT(m_hShutdownEvent); ::SetEvent(m_hShutdownEvent); }
	
	operator HANDLE() const { return m_hComm; }
	BOOL IsOpen(void) const { return m_hComm != INVALID_HANDLE_VALUE; }

#ifdef _DEBUG
	void Dump(CDumpContext& dc) const;
#endif

public:
//串口配置及其他方法
	void SetState(DCB& dcb);
	void GetState(DCB& dcb);
	void BuildDCB(const CString& strDef, DCB& dcb);
	void BuildDCBAndTimeouts(const CString& strDef, DCB& dcb, COMMTIMEOUTS commtimeouts);
	void ClearError(DWORD& dwErrors);
	void GetStatus(COMSTAT& comstat);
	void Escape(const DWORD& dwFunc);
	void ClearDTR(void);
	void ClearRTS(void);
	void SetDTR(void);
	void SetRTS(void);
	void SetXOFF(void);
	void SetXON(void);
	void GetModemStatus(DWORD& dwModemStatus);
	void GetProperties(COMMPROP& commprop);
	void ClearBreak(void);
	void SetBreak(void);

public:
//時間方法
	void GetTimeouts(COMMTIMEOUTS& commtimeouts);
	void SetTimeouts(COMMTIMEOUTS& commtimeouts);
	void SetWaitTimeouts(const DWORD& dwMilliseconds = INFINITE) { m_dwTimeoutMilliseconds = dwMilliseconds; }
	void Set0Timeout(void);
	void Set0WriteTimeout(void);
	void Set0ReadTimeout(void);

public:
//串口事件方法
	void GetMask(DWORD& dwEvtMask);
	void SetMask(const DWORD& dwEvtMask);
	BOOL WaitEvent(DWORD& dwEvtMask, OVERLAPPED& overlapped);

public:
//隊列方法
	void Purge(const DWORD& dwFlags);
	void Flush(void);
	void Setup(const DWORD& dwInQueue, const DWORD& dwOutQueue);
	void TerminateOutstandingWrites(void);
	void TerminateOutstandingReads(void);
	void ClearWriteBuffer(void);
	void ClearReadBuffer(void);

public:
//配置方法
	void GetConfig(COMMCONFIG& config);
	static void GetDefaultConfig(UINT nPortNr, COMMCONFIG& config);
	void SetConfig(COMMCONFIG& Config);
	static void SetDefaultConfig(UINT nPortNr, COMMCONFIG& config);

public:
//線程操作方法
	BOOL StartMonitoring(void);
	BOOL StopMonitoring(void);
	BOOL RestartMonitoring(void);

public:
//串口讀寫方法
	BOOL Read(LPVOID lpBuffer, const DWORD& dwNumberOfBytesToRead, OVERLAPPED& overlapped, LPDWORD lpNumberOfBytesRead);
	BOOL Write(LPCVOID lpBuffer, const DWORD& dwNumberOfBytesToWrite, OVERLAPPED& overlapped, LPDWORD lpNumberOfBytesWrite);
	void GetOverlappedResult(OVERLAPPED& overlapped,DWORD& dwBytesTransfered, BOOL bWait);
	void TransmitChar(const char& cChar);

public:
//自定義消息
	static const UINT WM_COMM_BREAK_DETECTED;
	static const UINT WM_COMM_CTS_DETECTED;
	static const UINT WM_COMM_DSR_DETECTED;
	static const UINT WM_COMM_ERR_DETECTED;
	static const UINT WM_COMM_RING_DETECTED;
	static const UINT WM_COMM_RLSD_DETECTED;
	static const UINT WM_COMM_RXFLAG_DETECTED;
	static const UINT WM_COMM_TXEMPTY_DETECTED;
	static const UINT WM_COMM_READED_DETECTED;
	static const UINT WM_COMM_TIMEOUT_DETECTED;

public:
//設置事件對象方法
	void SetWriteEvent(void) { ASSERT(m_hWriteEvent); ::SetEvent(m_hWriteEvent); }
private:
	BOOL SetReadEvent(void);
	BOOL SetBreakEvent(DWORD& dwCommEvents);

protected:
//各種串口事件處理方法
	BOOL HandleBreakEvent(DWORD& dwCommEvent);
	void HandleShutdownEvent(void) { m_bThreadAlive = FALSE; }
	void HandleWaitTimeouts(void);
//子類必須重載這兩個方法,完成讀寫事件方法
//注意:HandleReadedEvent通過WM_COMM_TIMEOUT_DETECTED自定義消息傳遞COMMDATA自定義結構
//		如有必要可以擴充此結構,以滿足用戶需求
	virtual BOOL HandleReadedEvent(LPVOID pParam = NULL, const DWORD& dwReadCount = 0) = 0;
	virtual BOOL HandleWriteEvent(void) = 0;
	
private:
//串口句柄
	HANDLE	m_hComm;
//串口號
	UINT	m_nPortNr;
//串口監視的事件
	DWORD	m_dwCommEvents;
//串口設置結構
	DCB				m_dcb;
	COMMTIMEOUTS	m_CommTimeouts;
//超時
	DWORD	m_dwTimeoutMilliseconds;

//類的擁有者窗口
	CWnd* m_pOwner;

//臨界區變量	
	CRITICAL_SECTION m_csCommunicationSync;

private:
//重疊結構
	OVERLAPPED m_ReadOverlapped;
	OVERLAPPED m_BreakOverlapped;
protected:
	OVERLAPPED m_WriteOverlapped;

private:
//事件及事件數組
	HANDLE m_hShutdownEvent;
	HANDLE m_hWriteEvent;	
	HANDLE m_hEventArray[4];

//線程對象
	CWinThread* m_Thread;
//線程存活標志
	BOOL		m_bThreadAlive;
//線程函數
	static UINT CommThread(LPVOID pParam);

//輸入緩沖區
	BYTE*	m_lpInputBuffer;
	UINT	m_nBufferSize;

	DECLARE_DYNAMIC(CSerialPort)
};

#endif // !defined(AFX_SERIALPORT_H__9E263F73_9037_4DFD_A391_5176DC806079__INCLUDED_)

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品久久一区二区三区| 一本色道综合亚洲| 国产成人免费在线视频| 国产麻豆午夜三级精品| 麻豆国产精品官网| 高清不卡在线观看av| 日本久久精品电影| 日韩色视频在线观看| 国产精品久线观看视频| 亚洲高清中文字幕| 国产主播一区二区三区| 国产成人免费视频一区| 色天天综合久久久久综合片| 日韩天堂在线观看| 亚洲猫色日本管| 调教+趴+乳夹+国产+精品| 欧美性视频一区二区三区| 欧美日韩一区久久| 国产视频一区不卡| 亚州成人在线电影| 成人激情免费视频| 日韩欧美资源站| 亚洲与欧洲av电影| 国产精品亚洲а∨天堂免在线| 色综合天天综合给合国产| 欧美成人福利视频| 日本 国产 欧美色综合| 97se狠狠狠综合亚洲狠狠| 91精品国产欧美日韩| 国产精品久久看| 男女性色大片免费观看一区二区| 91丝袜美女网| 久久综合久久综合久久综合| 香蕉加勒比综合久久| gogogo免费视频观看亚洲一| 日韩欧美一区二区三区在线| 亚洲一区二区三区国产| 国产成人亚洲精品青草天美| 日韩免费高清视频| 亚洲黄色小说网站| 成人h动漫精品一区二| 欧美一级二级三级蜜桃| 亚洲最大的成人av| 99精品视频一区二区三区| 国产欧美日本一区视频| 国产呦精品一区二区三区网站 | 国产精品久久久久久久久免费丝袜 | 欧美人伦禁忌dvd放荡欲情| 国产欧美日本一区视频| 成人毛片老司机大片| 亚洲欧洲美洲综合色网| 色哟哟精品一区| 亚洲风情在线资源站| 91精品福利在线一区二区三区| 捆绑紧缚一区二区三区视频| 久久久久久电影| 91小视频在线观看| 午夜精品视频一区| 久久精品亚洲一区二区三区浴池| eeuss鲁一区二区三区| 亚洲国产精品久久不卡毛片| 日韩免费看的电影| 日韩欧美国产1| 国产主播一区二区| 亚洲欧美国产毛片在线| 欧美亚洲动漫制服丝袜| 亚洲自拍另类综合| 色综合色综合色综合 | 色综合久久综合网欧美综合网| 亚洲一区二区偷拍精品| 欧美成人一区二区三区片免费| 国产 日韩 欧美大片| 亚洲一区二区三区免费视频| 精品成人一区二区| 91小视频免费看| 久久国产精品露脸对白| 中文字幕亚洲精品在线观看| 91精品国产乱码| 91在线免费视频观看| 麻豆精品一区二区综合av| 最新欧美精品一区二区三区| 日韩欧美一区二区三区在线| 91婷婷韩国欧美一区二区| 另类小说图片综合网| 亚洲激情五月婷婷| 国产性天天综合网| 91精品欧美一区二区三区综合在 | 亚洲六月丁香色婷婷综合久久 | 另类调教123区| 亚洲少妇中出一区| 精品国产成人系列| 欧美另类z0zxhd电影| 波多野结衣亚洲一区| 精品中文字幕一区二区| 午夜久久久久久久久| 综合久久国产九一剧情麻豆| 久久综合色婷婷| 欧美高清一级片在线| 色综合色综合色综合| 成人高清视频免费观看| 激情伊人五月天久久综合| 五月天丁香久久| 一区二区三区高清| 亚洲欧洲综合另类| 国产精品少妇自拍| 日本一区二区三区久久久久久久久不| 欧美一区二区在线视频| 欧美视频一二三区| 色综合久久天天综合网| 99久久777色| 99精品久久只有精品| av中文字幕不卡| 99久免费精品视频在线观看 | av日韩在线网站| av在线一区二区三区| www.av亚洲| 99久久久国产精品免费蜜臀| av中文字幕亚洲| 91九色02白丝porn| 欧美性一区二区| 欧美精品久久一区| 91精品国产综合久久精品| 日韩精品最新网址| 2021久久国产精品不只是精品| 精品奇米国产一区二区三区| 日韩一二三区不卡| 久久老女人爱爱| 亚洲国产精品传媒在线观看| 中文字幕亚洲欧美在线不卡| 综合久久一区二区三区| 亚洲一二三四在线| 免费高清视频精品| 美国十次综合导航| 国产成人一级电影| 91丨九色porny丨蝌蚪| 欧美日韩中字一区| 日韩美女在线视频| 中文字幕av一区二区三区高| 亚洲天堂网中文字| 午夜伊人狠狠久久| 精品一区二区久久| 不卡一区二区在线| 欧美色欧美亚洲另类二区| 欧美电影免费观看完整版| 国产女主播一区| 偷拍亚洲欧洲综合| 国产一区二区在线观看视频| 99久久国产免费看| 7777精品伊人久久久大香线蕉的| 欧美va在线播放| 一区视频在线播放| 美女视频免费一区| 成人高清在线视频| 91精品国产入口在线| 国产精品五月天| 日本免费新一区视频| 成人美女视频在线看| 制服丝袜在线91| 国产精品国产精品国产专区不蜜 | 国产精品狼人久久影院观看方式| 亚洲电影中文字幕在线观看| 国产乱码字幕精品高清av| 91黄视频在线| 亚洲国产激情av| 日韩在线一区二区| 91影院在线观看| 欧美精品一区二区三区高清aⅴ| 亚洲美女免费视频| 国产成人亚洲综合a∨猫咪| 欧美色图片你懂的| 国产精品女主播av| 精品一区二区在线视频| 欧美色欧美亚洲另类二区| 亚洲国产高清不卡| 国产最新精品精品你懂的| 欧美日韩色一区| 一区二区三区四区在线播放| 国产精品夜夜爽| 精品国产一二三区| 午夜av电影一区| 在线免费观看成人短视频| 欧美韩日一区二区三区四区| 麻豆成人久久精品二区三区小说| 欧美在线视频你懂得| 中文字幕一区二区三区色视频 | 日韩精品一区二区三区在线观看| 亚洲精品国产无天堂网2021| 成人国产一区二区三区精品| 国产欧美一区二区精品久导航 | 亚洲国产日韩av| 91传媒视频在线播放| 国产精品不卡在线观看| 成人性生交大片免费看在线播放 | 国产一区欧美一区| 日韩欧美一区二区在线视频| 无吗不卡中文字幕| 制服丝袜激情欧洲亚洲| 午夜精品123| 欧美一卡2卡3卡4卡| 日韩成人av影视|