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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? comport.h

?? 一個(gè)讀寫GPS并顯示地理位置和分析的代碼
?? H
字號(hào):
#ifndef __SERIAL_H
#define __SERIAL_H

class CComPort
{
// Class enumerations
public:
	// Communication event
	typedef enum
	{
		EEventNone  = -1,			// Event trigged without cause
		EEventBreak = EV_BREAK,		// A break was detected on input
		EEventCTS   = EV_CTS,		// The CTS signal changed state
		EEventDSR   = EV_DSR,		// The DSR signal changed state
		EEventError = EV_ERR,		// A line-status error occurred
		EEventRing  = EV_RING,		// A ring indicator was detected
		EEventRLSD  = EV_RLSD,		// The RLSD signal changed state
		EEventRecv  = EV_RXCHAR,	// Data is received on input
		EEventRcvEv = EV_RXFLAG,	// Event character was received on input
		EEventSend  = EV_TXEMPTY,	// Last character on output was sent
	} 
	EEvent;

	// Baudrate
	typedef enum
	{
		EBaudUnknown = -1,			// Unknown
		EBaud110     = CBR_110,		// 110 bits/sec
		EBaud300     = CBR_300,		// 300 bits/sec
		EBaud600     = CBR_600,		// 600 bits/sec
		EBaud1200    = CBR_1200,	// 1200 bits/sec
		EBaud2400    = CBR_2400,	// 2400 bits/sec
		EBaud4800    = CBR_4800,	// 4800 bits/sec
		EBaud9600    = CBR_9600,	// 9600 bits/sec
		EBaud14400   = CBR_14400,	// 14400 bits/sec
		EBaud19200   = CBR_19200,	// 19200 bits/sec (default)
		EBaud38400   = CBR_38400,	// 38400 bits/sec
		EBaud56000   = CBR_56000,	// 56000 bits/sec
		EBaud57600   = CBR_57600,	// 57600 bits/sec
		EBaud115200  = CBR_115200,	// 115200 bits/sec
		EBaud128000  = CBR_128000,	// 128000 bits/sec
		EBaud256000  = CBR_256000,	// 256000 bits/sec
	}
	EBaudrate;

	// Data bits (5-8)
	typedef enum
	{
		EDataUnknown = -1,			// Unknown
		EData5       =  5,			// 5 bits per byte
		EData6       =  6,			// 6 bits per byte
		EData7       =  7,			// 7 bits per byte
		EData8       =  8			// 8 bits per byte (default)
	}
	EDataBits;

	// Parity scheme
	typedef enum
	{
		EParUnknown = -1,			// Unknown
		EParNone    = NOPARITY,		// No parity (default)
		EParOdd     = ODDPARITY,	// Odd parity
		EParEven    = EVENPARITY,	// Even parity
		EParMark    = MARKPARITY,	// Mark parity
		EParSpace   = SPACEPARITY	// Space parity
	}
	EParity;

	// Stop bits
	typedef enum
	{
		EStopUnknown = -1,			// Unknown
		EStop1       = ONESTOPBIT,	// 1 stopbit (default)
		EStop1_5     = ONE5STOPBITS,// 1.5 stopbit
		EStop2       = TWOSTOPBITS	// 2 stopbits
	} 
	EStopBits;

	// Handshaking
	typedef enum
	{
		EHandshakeUnknown		= -1,	// Unknown
		EHandshakeOff			=  0,	// No handshaking
		EHandshakeHardware		=  1,	// Hardware handshaking (RTS/CTS)
		EHandshakeSoftware		=  2	// Software handshaking (XON/XOFF)
	} 
	EHandshake;

	// Timeout settings
	typedef enum
	{
		EReadTimeoutUnknown		= -1,	// Unknown
		EReadTimeoutNonblocking	=  0,	// Always return immediately
		EReadTimeoutBlocking	=  1	// Block until everything is retrieved
	}
	EReadTimeout;

	// Communication errors
	typedef enum
	{
		EErrorUnknown = 0,			// Unknown
		EErrorBreak   = CE_BREAK,	// Break condition detected
		EErrorFrame   = CE_FRAME,	// Framing error
		EErrorIOE     = CE_IOE,		// I/O device error
		EErrorMode    = CE_MODE,	// Unsupported mode
		EErrorOverrun = CE_OVERRUN,	// Character buffer overrun, next byte is lost
		EErrorRxOver  = CE_RXOVER,	// Input buffer overflow, byte lost
		EErrorParity  = CE_RXPARITY,// Input parity error
		EErrorTxFull  = CE_TXFULL	// Output buffer full
	}
	EError;

	// Port availability
	typedef enum
	{
		EPortUnknownError = -1,		// Unknown error occurred
		EPortAvailable    =  0,		// Port is available
		EPortNotAvailable =  1,		// Port is not present
		EPortInUse        =  2		// Port is in use

	} 
	EPort;

// Construction
public:
	CComPort();
	virtual ~CComPort();

// Operations
public:
	virtual LONG Open (LPCTSTR lpszDevice, DWORD dwInQueue = 2048, DWORD dwOutQueue = 2048);

	virtual LONG Close (void);

	virtual LONG Setup (EBaudrate eBaudrate = EBaud9600,
						EDataBits eDataBits = EData8,
						EParity   eParity   = EParNone,
						EStopBits eStopBits = EStop1);

	virtual LONG SetEventChar (BYTE bEventChar, bool fAdjustMask = true);

	// Set the event mask, which indicates what events should be
	// monitored. The WaitEvent method can only monitor events that
	// have been enabled. The default setting only monitors the
	// error events and data events. An application may choose to
	// monitor CTS. DSR, RLSD, etc as well.
	virtual LONG SetMask (DWORD dwMask = EEventBreak|EEventError|EEventRecv);

	// The WaitEvent method waits for one of the events that are
	// enabled (see SetMask).
	virtual LONG WaitEvent (LPOVERLAPPED lpOverlapped = 0, DWORD dwTimeout = INFINITE);

	// Setup the handshaking protocol. There are three forms of
	// handshaking:
	//
	// 1) No handshaking, so data is always send even if the receiver
	//    cannot handle the data anymore. This can lead to data loss,
	//    when the sender is able to transmit data faster then the
	//    receiver can handle.
	// 2) Hardware handshaking, where the RTS/CTS lines are used to
	//    indicate if data can be sent. This mode requires that both
	//    ports and the cable support hardware handshaking. Hardware
	//    handshaking is the most reliable and efficient form of
	//    handshaking available, but is hardware dependant.
	// 3) Software handshaking, where the XON/XOFF characters are used
	//    to throttle the data. A major drawback of this method is that
	//    these characters cannot be used for data anymore.
	virtual LONG SetupHandshaking (EHandshake eHandshake);

	// Read operations can be blocking or non-blocking. You can use
	// this method to setup wether to use blocking or non-blocking
	// reads. Non-blocking reads is the default, which is required
	// for most applications.
	//
	// 1) Blocking reads, which will cause the 'Read' method to block
	//    until the requested number of bytes have been read. This is
	//    useful if you know how many data you will receive.
	// 2) Non-blocking reads, which will read as many bytes into your
	//    buffer and returns almost immediately. This is often the
	//    preferred setting.
	virtual LONG SetupReadTimeouts (EReadTimeout eReadTimeout);

	// Obtain communication settings
	virtual EBaudrate  GetBaudrate    (void);
	virtual EDataBits  GetDataBits    (void);
	virtual EParity    GetParity      (void);
	virtual EStopBits  GetStopBits    (void);
	virtual EHandshake GetHandshaking (void);
	virtual DWORD      GetEventMask   (void);
	virtual BYTE       GetEventChar   (void);

	// Write data to the serial port. Note that we are only able to
	// send ANSI strings, because it probably doesn't make sense to
	// transmit Unicode strings to an application.
	virtual LONG Write (const void* pData, size_t iLen, DWORD* pdwWritten = 0, LPOVERLAPPED lpOverlapped = 0, DWORD dwTimeout = INFINITE);
	virtual LONG Write (LPCSTR pString, DWORD* pdwWritten = 0, LPOVERLAPPED lpOverlapped = 0, DWORD dwTimeout = INFINITE);

	// Read data from the serial port. Refer to the description of
	// the 'SetupReadTimeouts' for an explanation about (non) blocking
	// reads and how to use this.
	virtual LONG Read (void* pData, size_t iLen, DWORD* pdwRead = 0, LPOVERLAPPED lpOverlapped = 0, DWORD dwTimeout = INFINITE);

	// Determine what caused the event to trigger
	EEvent GetEventType (void);

	// Check if com-port is opened
	BOOL IsOpen (void) const		{ return (m_hFile != 0); }

	// Obtain last error status
	LONG GetLastError (void) const	{ return m_lLastError; }

	// Flush all buffers
	LONG Flush (void);

protected:
	// Internal helper class which wraps DCB structure
	class CDCB : public DCB
	{
	public:
		CDCB() { DCBlength = sizeof(DCB); }
	};

// Attributes
protected:
	LONG	m_lLastError;		// Last serial error
	HANDLE	m_hFile;			// File handle
	EEvent	m_eEvent;			// Event type
	HANDLE	m_hevtOverlapped;	// Event handle for internal overlapped operations
};

#endif	// __SERIAL_H

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日高清视频| 日本道色综合久久| 亚洲www啪成人一区二区麻豆| 欧美不卡一区二区三区| 99r国产精品| 久久97超碰色| 日韩中文字幕亚洲一区二区va在线| 久久蜜臀精品av| 欧美精品成人一区二区三区四区| 成人午夜私人影院| 国产一区二区中文字幕| 日韩制服丝袜av| 亚洲成人综合网站| 一区在线观看视频| 日本一二三四高清不卡| 精品精品欲导航| 91精品国产欧美日韩| 91行情网站电视在线观看高清版| 高清国产午夜精品久久久久久| 日本欧美在线看| 亚洲成人资源网| 亚洲综合丝袜美腿| 亚洲美女视频一区| 最新国产成人在线观看| 国产午夜亚洲精品理论片色戒| 日韩一区二区三区电影| 欧美日韩国产美女| 欧美视频中文字幕| 国产精品久久久久久久久久免费看| 成人av在线资源网| 韩日欧美一区二区三区| 日本不卡在线视频| 午夜视频久久久久久| 亚洲动漫第一页| 亚洲国产精品天堂| 亚洲成在线观看| 日韩国产高清在线| 麻豆精品一区二区av白丝在线| 日韩国产精品久久久久久亚洲| 天堂久久一区二区三区| 天天色综合天天| 免费在线欧美视频| 麻豆精品一区二区综合av| 美女视频黄 久久| 久久精品国产亚洲一区二区三区| 青椒成人免费视频| 韩国精品在线观看| 国产成人免费av在线| 豆国产96在线|亚洲| 成人爱爱电影网址| 91麻豆国产精品久久| 在线免费精品视频| 欧美精品一卡二卡| 免费日本视频一区| 岛国av在线一区| 国产激情偷乱视频一区二区三区| 国产又粗又猛又爽又黄91精品| 狠狠色丁香婷综合久久| 高清视频一区二区| 91美女在线视频| 欧美日韩国产乱码电影| 欧美成人女星排行榜| 久久久精品日韩欧美| 亚洲欧洲日韩av| 亚洲国产综合人成综合网站| 免费久久精品视频| 高清成人免费视频| 91福利资源站| 精品福利在线导航| 国产精品久久久久久久午夜片| 一区二区三区免费观看| 蜜臀久久久久久久| 国产成人在线视频播放| 亚洲精品一区二区精华| 中文字幕在线观看不卡视频| 亚洲一二三四在线观看| 久久精品二区亚洲w码| 2021中文字幕一区亚洲| 欧美mv日韩mv亚洲| 国产精品久久久久久久第一福利 | 成人毛片在线观看| 91久久线看在观草草青青| 欧美疯狂性受xxxxx喷水图片| 精品国产第一区二区三区观看体验| 中文字幕欧美区| 日本午夜精品视频在线观看| 成人精品免费看| 91精品国产品国语在线不卡| 国产精品的网站| 久久精品久久99精品久久| 91在线观看一区二区| 欧美成人一区二区| 一区二区三区日韩欧美| 国产乱码精品一区二区三区av| 91黄色免费观看| 欧美高清在线视频| 免费成人av在线| 色婷婷综合久久久中文一区二区 | 亚洲三级视频在线观看| 日韩av一区二区在线影视| hitomi一区二区三区精品| 欧美一级xxx| 一区二区国产盗摄色噜噜| 国产成人免费视频| 欧美一级免费大片| 亚洲自拍欧美精品| 成人免费视频一区| 日韩毛片视频在线看| 亚洲高清中文字幕| 成人精品电影在线观看| 日韩视频免费直播| 一区二区三区在线不卡| 国产二区国产一区在线观看| 在线不卡的av| 一区二区三区在线免费观看 | 波多野结衣中文一区| 欧美电视剧在线观看完整版| 性做久久久久久免费观看| 91蜜桃在线免费视频| 国产精品久线观看视频| 国产成人综合网| 久久综合久久99| 韩国精品主播一区二区在线观看| 制服丝袜国产精品| 日韩av电影一区| 欧美顶级少妇做爰| 五月激情六月综合| 欧美日韩成人在线一区| 亚洲丶国产丶欧美一区二区三区| 色综合视频在线观看| 中文字幕制服丝袜成人av| 成人少妇影院yyyy| 中文字幕欧美国产| 懂色av中文字幕一区二区三区| 久久久久九九视频| 国产成人在线观看| 久久久高清一区二区三区| 国产一区二区在线观看视频| 26uuu另类欧美亚洲曰本| 美女爽到高潮91| 精品国产一区二区在线观看| 蜜乳av一区二区三区| 精品福利一二区| 国产一本一道久久香蕉| 国产亚洲综合性久久久影院| 国产盗摄女厕一区二区三区| 欧美国产综合一区二区| 成人午夜视频福利| 亚洲麻豆国产自偷在线| 在线观看视频91| 偷偷要91色婷婷| 日韩美女一区二区三区| 国产乱码一区二区三区| 亚洲国产精品ⅴa在线观看| 成人avav影音| 一区二区国产盗摄色噜噜| 欧美猛男男办公室激情| 精品一区二区三区免费视频| 久久久99精品免费观看| av欧美精品.com| 亚洲成人第一页| 精品欧美一区二区在线观看| 国产.精品.日韩.另类.中文.在线.播放 | 国产二区国产一区在线观看| 国产精品理伦片| 欧美日韩一卡二卡| 国产一区美女在线| 亚洲人妖av一区二区| 911精品国产一区二区在线| 久久91精品国产91久久小草| 国产精品入口麻豆原神| 在线免费观看视频一区| 久久国产视频网| 综合久久一区二区三区| 制服.丝袜.亚洲.另类.中文 | 精品视频在线免费观看| 看片的网站亚洲| 亚洲日本一区二区| 4438亚洲最大| 9i看片成人免费高清| 日韩精品1区2区3区| 国产欧美日韩综合精品一区二区| 色婷婷激情久久| 黄一区二区三区| 亚洲尤物在线视频观看| 久久夜色精品国产噜噜av| 91成人在线免费观看| 久久精品99国产国产精| 亚洲精品亚洲人成人网在线播放| 日韩一级在线观看| 91影院在线免费观看| 极品美女销魂一区二区三区| 亚洲乱码国产乱码精品精可以看| 欧美不卡视频一区| 在线精品视频小说1| 岛国一区二区三区| 美国精品在线观看| 亚洲欧美电影一区二区| 久久综合一区二区| 91精品国产综合久久婷婷香蕉|