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

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

?? serialport.cpp

?? 用Win32API建立的一個串口通信類,側(cè)重于異步通信方式,做用來做串口通信很方便.
?? CPP
字號:
#include "StdAfx.h"
#include ".\serialport.h"
#include <cassert>

CSerialPort::CSerialPort(void)
: m_bOpen(false)
{
	::ZeroMemory(&m_Dcb,sizeof(m_Dcb));
	m_Dcb.DCBlength = sizeof(m_Dcb);
	m_hCommu = INVALID_HANDLE_VALUE;
	m_nBufferIn = m_nBufferOut = 512;
	::ZeroMemory(&m_nTimeOut,sizeof(m_nTimeOut));
	m_nTimeOut.ReadIntervalTimeout = 100;
	m_nTimeOut.ReadTotalTimeoutMultiplier = 150;
	m_nTimeOut.WriteTotalTimeoutConstant = 1000;
	m_nTimeOut.WriteTotalTimeoutMultiplier = 1000;
	m_nTimeOut.WriteTotalTimeoutConstant = 1000;
	::ZeroMemory(&m_OvlpWrite,sizeof(m_OvlpWrite));
	m_OvlpWrite.hEvent = CreateEvent(NULL, true, false, NULL);
	assert(m_OvlpWrite.hEvent != INVALID_HANDLE_VALUE);
	::ZeroMemory(&m_OvlpRead,sizeof(m_OvlpRead));
	m_OvlpRead.hEvent = CreateEvent(NULL,true,false,NULL);
}

CSerialPort::~CSerialPort(void)
{
	if(m_bOpen) Close();
}

void CSerialPort::Init(void)
{
	
}

void CSerialPort::Close(void)
{
	if(m_bOpen)
		::CloseHandle(m_hCommu);
	m_bOpen = false;
	m_hCommu = INVALID_HANDLE_VALUE;
	::ResetEvent(m_OvlpWrite.hEvent);
	::CloseHandle(m_OvlpWrite.hEvent);
	::ResetEvent(m_OvlpRead.hEvent);
	::CloseHandle(m_OvlpRead.hEvent);
}

bool CSerialPort::Open(UINT nPort,DWORD BaudRate, 
					   BYTE ByteSize,BYTE Parity, BYTE StopBits)
{
	m_nPort = nPort;
	if(m_bOpen) Close();
	char com_str[10];
	strcpy(com_str, "COM");
	ltoa(m_nPort, com_str + 3, 10);
	m_hCommu = CreateFile(
		com_str,
		GENERIC_READ | GENERIC_WRITE,
		0,
		NULL,
		OPEN_EXISTING,
		FILE_ATTRIBUTE_NORMAL | FILE_FLAG_OVERLAPPED,	//重疊I/O
		NULL
		);
	if(m_hCommu == INVALID_HANDLE_VALUE) return false;
	BOOL tempBit;
	//----------------------------------------------------------------------
	//設(shè)置緩沖區(qū)
	tempBit = SetupComm(m_hCommu,m_nBufferIn,m_nBufferOut);
	if(!tempBit) return false;
	//-----------------------------------------------------------------------
	//設(shè)置串口參數(shù):波特率,數(shù)據(jù)位......等等
	tempBit = GetCommState(m_hCommu,&m_Dcb);
	if(!tempBit) return false;
	m_Dcb.BaudRate = BaudRate;
	m_Dcb.ByteSize = ByteSize;
	m_Dcb.Parity = NOPARITY;//MODBUS的特殊需要
	m_Dcb.StopBits = StopBits;
	tempBit = SetCommState(m_hCommu,&m_Dcb);
	if(!tempBit) return false;
	//------------------------------------------------------------------------------
	//設(shè)置超時時間
	tempBit = SetCommTimeouts(m_hCommu, &m_nTimeOut);
	if(!tempBit) return false;
	//--------------------------------------------------------------------------------
	//清空串口緩沖區(qū)
	tempBit = PurgeComm(m_hCommu,PURGE_TXABORT | PURGE_RXABORT | PURGE_TXCLEAR | PURGE_RXCLEAR);
	if(!tempBit) return false;
	//-----------------------------------------------------------------------------------
	m_bOpen = true;
	return true;
}
//用于多機通信
bool CSerialPort::SetParityBit(BYTE nParity)
{
	m_Dcb.Parity = nParity;
	if(SetCommState(m_hCommu,&m_Dcb)) return true;
	return false;
}
//在開串口之前調(diào)用有效
void CSerialPort::InitBufferSize(UINT nBufferIn, UINT nBufferOut)
{
	m_nBufferIn = nBufferIn;
	m_nBufferOut = nBufferOut;
}
//異步寫數(shù)據(jù)
bool CSerialPort::WriteData(BYTE* pWriteBuff, WORD nWrite)
{
	if(!m_bOpen) return false;
	assert(pWriteBuff);
	m_OvlpWrite.Offset = 0;
	m_OvlpWrite.OffsetHigh = 0;
	DWORD dwError;
	COMSTAT state;
	::ClearCommError(m_hCommu,&dwError,&state);//清除錯誤標(biāo)志
	PurgeComm(m_hCommu, PURGE_TXABORT | PURGE_TXCLEAR
						|PURGE_TXCLEAR | PURGE_RXCLEAR);//清空緩沖區(qū)和終止發(fā)送與接收	
	DWORD nRealWrite = 0;
	BOOL bResult;
	bool bWrite = true;
	bResult = WriteFile(m_hCommu,pWriteBuff,nWrite,&nRealWrite,&m_OvlpWrite);//異步寫
	if(!bResult)
	{
		dwError = ::GetLastError();
		switch(dwError)
		{
			case ERROR_IO_PENDING:
			{
				bWrite = false;
				break;
			}
			default:return false;
		}
	}
	if(!bWrite)
	{
		bResult = ::GetOverlappedResult(m_hCommu,&m_OvlpWrite,&nRealWrite,true);
		if(!bResult) return false;
		bWrite = true;
	}
	return true;
}
//異步讀數(shù)據(jù)
DWORD CSerialPort::ReadData(BYTE* pReadBuff, WORD nRead)
{
	COMSTAT state;
	BOOL bResult;
	DWORD dwError = 0;
	DWORD nRealRead = 0;
	bool bRead = true;
	::ClearCommError(m_hCommu,&dwError,&state);
	bResult = ::ReadFile(m_hCommu,pReadBuff,nRead,&nRealRead,&m_OvlpRead);
	if(!bResult)
	{
		dwError = ::GetLastError();
		switch(dwError)
		{
			case ERROR_IO_PENDING:
			{
				bRead = false;
				break;
			}
			default:return false;
		}
	}
	if(!bRead)
	{
		bResult = ::GetOverlappedResult(m_hCommu,&m_OvlpRead,&nRealRead,true);
		if(!bResult) return false;
		bRead = true;
	}
	return nRealRead;
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产成人日日夜夜| 粉嫩av亚洲一区二区图片| 久久久久久久久久久久电影| 91免费国产在线| 国产一区二区三区免费在线观看| 亚洲精品成人在线| 久久新电视剧免费观看| 欧美日韩午夜在线| 色综合一区二区| 国产精品18久久久久久久网站| 日韩专区欧美专区| 亚洲综合成人在线视频| 国产精品久久久久久亚洲毛片 | 成人欧美一区二区三区白人 | 极品瑜伽女神91| 亚洲高清免费一级二级三级| 国产精品久久久久久久久免费樱桃 | 激情综合网天天干| 天天av天天翘天天综合网| 中文字幕一区二区不卡| 国产农村妇女毛片精品久久麻豆 | 成人动漫在线一区| 国产精品一区久久久久| 卡一卡二国产精品 | 91成人在线精品| 97精品电影院| 99免费精品在线观看| 国产福利一区二区三区视频| 久久99精品久久久久| 男人的j进女人的j一区| 日韩高清在线一区| 亚洲成人一二三| 亚洲国产精品久久一线不卡| 樱桃视频在线观看一区| 亚洲免费资源在线播放| 亚洲美女屁股眼交| 国产精品高潮呻吟久久| 中文字幕一区三区| 亚洲人成精品久久久久久 | 久久九九国产精品| 久久免费国产精品| 久久―日本道色综合久久 | 亚洲国产成人av网| 亚洲国产一区二区三区| 波多野结衣精品在线| 国产成人激情av| 成人高清免费观看| 91蜜桃网址入口| 91高清视频免费看| 欧美三级日本三级少妇99| 欧美日韩成人综合在线一区二区| 欧美日韩一区二区三区四区| 777午夜精品免费视频| 欧美成人乱码一区二区三区| 精品久久久久久最新网址| 国产亚洲精久久久久久| 国产精品乱码人人做人人爱| 一区二区三区在线看| 香蕉乱码成人久久天堂爱免费| 日韩福利电影在线| 国产乱色国产精品免费视频| www.成人网.com| 欧美在线观看视频在线| 日韩一区二区电影| 国产欧美精品国产国产专区| 亚洲精品一二三| 日韩激情在线观看| 国产成人亚洲综合色影视| 99久久久免费精品国产一区二区| 在线影视一区二区三区| 日韩欧美第一区| 国产欧美日产一区| 亚洲sss视频在线视频| 精品一区二区三区的国产在线播放 | 亚洲国产精品自拍| 看电视剧不卡顿的网站| proumb性欧美在线观看| 欧美剧在线免费观看网站 | 国产精品久久久久久久第一福利| 亚洲美女精品一区| 久久精品99国产精品日本| 99久久免费视频.com| 91精品麻豆日日躁夜夜躁| 久久久精品免费网站| 艳妇臀荡乳欲伦亚洲一区| 久久国产尿小便嘘嘘尿| 色94色欧美sute亚洲线路一久 | 精品国偷自产国产一区| 日韩一区欧美小说| 青草国产精品久久久久久| 99久久久无码国产精品| 精品日韩av一区二区| 亚洲一区二区三区四区五区黄| 国内成人自拍视频| 欧美三级在线看| 国产精品美女久久久久久久| 蜜桃av一区二区在线观看| 91社区在线播放| 久久亚洲综合色一区二区三区| 亚洲与欧洲av电影| 成人美女在线视频| 精品久久久久一区| 午夜免费久久看| 91小视频免费看| 日本一区二区三区久久久久久久久不| 亚洲成人免费影院| 色综合视频一区二区三区高清| 2024国产精品| 免费观看久久久4p| 欧美日本乱大交xxxxx| 亚洲男人电影天堂| 成人爽a毛片一区二区免费| 精品美女在线播放| 日本亚洲三级在线| 欧美亚洲国产一区二区三区va| 日本一区二区不卡视频| 久久精品国内一区二区三区| 欧美区在线观看| 一区二区三区在线高清| 99免费精品视频| 亚洲欧洲在线观看av| 国产成人综合亚洲网站| 精品国产3级a| 久久不见久久见中文字幕免费| 欧美高清你懂得| 亚洲成在人线免费| 欧美三级乱人伦电影| 夜夜嗨av一区二区三区| 一本大道久久a久久综合婷婷| 国产精品毛片无遮挡高清| 国产电影精品久久禁18| 久久久99精品久久| 国产一区二区美女| 国产亚洲女人久久久久毛片| 国模冰冰炮一区二区| 精品国产免费人成电影在线观看四季 | 欧美亚洲一区二区三区四区| 亚洲综合免费观看高清完整版 | 精品视频免费看| 亚洲第一电影网| 7777精品伊人久久久大香线蕉 | 亚洲欧美经典视频| 色欧美乱欧美15图片| 伊人婷婷欧美激情| 欧美性猛交xxxxxxxx| 日韩精品五月天| 日韩免费性生活视频播放| 韩国在线一区二区| 久久国产尿小便嘘嘘| 精品久久免费看| 国产成人精品亚洲777人妖| 中文字幕日韩精品一区| 在线一区二区观看| 日韩主播视频在线| 欧美白人最猛性xxxxx69交| 国产麻豆精品一区二区| 亚洲欧洲日韩在线| 欧美日韩中文精品| 蜜桃在线一区二区三区| 国产亚洲成av人在线观看导航 | 中文字幕中文在线不卡住| 色综合久久久久| 日本欧洲一区二区| 欧美精品一区二区三区四区| 国产91色综合久久免费分享| 亚洲精品中文字幕乱码三区| 欧美区视频在线观看| 国产麻豆精品在线观看| 亚洲女女做受ⅹxx高潮| 日韩一二三区不卡| 成人免费视频视频在线观看免费 | 三级一区在线视频先锋| wwwwww.欧美系列| 色吧成人激情小说| 久久国产三级精品| 亚洲精品你懂的| 日韩欧美成人一区二区| a美女胸又www黄视频久久| 婷婷丁香激情综合| 国产精品天美传媒| 91精品国产综合久久久蜜臀粉嫩 | 欧美体内she精高潮| 精品一区二区三区香蕉蜜桃 | 日韩欧美国产成人一区二区| 亚洲精品在线免费观看视频| av福利精品导航| 日韩激情av在线| 国产精品网友自拍| 日韩一区二区三区av| 99久久久久久| 韩国在线一区二区| 丝瓜av网站精品一区二区| 国产精品天美传媒沈樵| 日韩午夜在线播放| 在线观看亚洲精品| 成人午夜视频在线| 精品无码三级在线观看视频| 亚洲影院久久精品| 国产精品乱人伦中文| 久久综合九色综合97婷婷|