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

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

?? comm.cpp

?? 可以找到串口,可以寫MTK手機(jī)的IMEI
?? CPP
字號(hào):
#include "stdafx.h"
#include "Comm.h"

// 串口設(shè)備句柄
/*HANDLE hComm;

// 打開串口
// 輸入: pPort - 串口名稱或設(shè)備路徑,可用"COM1"或"\\.\COM1"兩種方式,建議用后者
//       nBaudRate - 波特率
//       nParity - 奇偶校驗(yàn)
//       nByteSize - 數(shù)據(jù)字節(jié)寬度
//       nStopBits - 停止位
BOOL OpenComm(const char* pPort, int nBaudRate, int nParity, int nByteSize, int nStopBits)
{
	DCB dcb;		// 串口控制塊
	COMMTIMEOUTS timeouts = {	// 串口超時(shí)控制參數(shù)
		1,				// 讀字符間隔超時(shí)時(shí)間: 100 ms
		1,					// 讀操作時(shí)每字符的時(shí)間: 1 ms (n個(gè)字符總共為n ms)
		10,				// 基本的(額外的)讀超時(shí)時(shí)間: 500 ms
		5,					// 寫操作時(shí)每字符的時(shí)間: 1 ms (n個(gè)字符總共為n ms)
		10};				// 基本的(額外的)寫超時(shí)時(shí)間: 100 ms

	hComm = CreateFile(pPort,	// 串口名稱或設(shè)備路徑
			GENERIC_READ | GENERIC_WRITE,	// 讀寫方式
			0,				// 共享方式:獨(dú)占
			NULL,			// 默認(rèn)的安全描述符
			OPEN_EXISTING,	// 創(chuàng)建方式
			0,				// 不需設(shè)置文件屬性
			NULL);			// 不需參照模板文件
	
	if(hComm == INVALID_HANDLE_VALUE) return FALSE;		// 打開串口失敗

	GetCommState(hComm, &dcb);		// 取DCB

	dcb.BaudRate = nBaudRate;
	dcb.ByteSize = nByteSize;
	dcb.Parity = nParity;
	dcb.StopBits = nStopBits;

	SetCommState(hComm, &dcb);		// 設(shè)置DCB

	SetupComm(hComm, 4096, 1024);	// 設(shè)置輸入輸出緩沖區(qū)大小

	SetCommTimeouts(hComm, &timeouts);	// 設(shè)置超時(shí)

	return TRUE;
}

// 關(guān)閉串口
BOOL CloseComm()
{
	return CloseHandle(hComm);
}

// 寫串口
// 輸入: pData - 待寫的數(shù)據(jù)緩沖區(qū)指針
//       nLength - 待寫的數(shù)據(jù)長(zhǎng)度
// 返回: 實(shí)際寫入的數(shù)據(jù)長(zhǎng)度
int WriteComm(void* pData, int nLength)
{
	DWORD dwNumWrite;	// 串口發(fā)出的數(shù)據(jù)長(zhǎng)度

	WriteFile(hComm, pData, (DWORD)nLength, &dwNumWrite, NULL);

	return (int)dwNumWrite;
}

// 讀串口
// 輸入: pData - 待讀的數(shù)據(jù)緩沖區(qū)指針
//       nLength - 待讀的最大數(shù)據(jù)長(zhǎng)度
// 返回: 實(shí)際讀出的數(shù)據(jù)長(zhǎng)度
int ReadComm(void* pData, int nLength)
{
	DWORD dwNumRead;	// 串口收到的數(shù)據(jù)長(zhǎng)度

	ReadFile(hComm, pData, (DWORD)nLength, &dwNumRead, NULL);
	
	return (int)dwNumRead;
}*/
CComm::CComm()
{

	memset( &m_OverlappedRead, 0, sizeof( OVERLAPPED ) );
 	memset( &m_OverlappedWrite, 0, sizeof( OVERLAPPED ) );
	m_hIDComDev = NULL;
	m_bOpened = FALSE;

}

CComm::~CComm()
{

	Close();

}

BOOL CComm::Open( int nPort, int nBaud )
{

	if( m_bOpened ) return( TRUE );

	char szPort[15];
	char szComParams[50];
	DCB dcb;

	wsprintf( szPort, "COM%d", nPort );
	m_hIDComDev = CreateFile( szPort, GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL | FILE_FLAG_OVERLAPPED, NULL );
	if( m_hIDComDev == NULL ) return( FALSE );

	memset( &m_OverlappedRead, 0, sizeof( OVERLAPPED ) );
 	memset( &m_OverlappedWrite, 0, sizeof( OVERLAPPED ) );

	COMMTIMEOUTS CommTimeOuts;
	CommTimeOuts.ReadIntervalTimeout = 0xFFFFFFFF;
	CommTimeOuts.ReadTotalTimeoutMultiplier = 100;
	CommTimeOuts.ReadTotalTimeoutConstant = 50;
	CommTimeOuts.WriteTotalTimeoutMultiplier = 100;
	CommTimeOuts.WriteTotalTimeoutConstant = 50000;
	SetCommTimeouts( m_hIDComDev, &CommTimeOuts );

	wsprintf( szComParams, "\\\\.\\COM%d:%d,n,8,1", nPort, nBaud );

	m_OverlappedRead.hEvent = CreateEvent( NULL, TRUE, FALSE, NULL );
	m_OverlappedWrite.hEvent = CreateEvent( NULL, TRUE, FALSE, NULL );

	dcb.DCBlength = sizeof( DCB );
	GetCommState( m_hIDComDev, &dcb );
	dcb.BaudRate = nBaud;
	dcb.ByteSize = 8;
	unsigned char ucSet;
	ucSet = (unsigned char) ( ( FC_RTSCTS & FC_DTRDSR ) != 0 );
	ucSet = (unsigned char) ( ( FC_RTSCTS & FC_RTSCTS ) != 0 );
	ucSet = (unsigned char) ( ( FC_RTSCTS & FC_XONXOFF ) != 0 );
	if( !SetCommState( m_hIDComDev, &dcb ) ||
		!SetupComm( m_hIDComDev, 10000, 10000 ) ||
		m_OverlappedRead.hEvent == NULL ||
		m_OverlappedWrite.hEvent == NULL ){
		DWORD dwError = GetLastError();
		if( m_OverlappedRead.hEvent != NULL ) CloseHandle( m_OverlappedRead.hEvent );
		if( m_OverlappedWrite.hEvent != NULL ) CloseHandle( m_OverlappedWrite.hEvent );
		CloseHandle( m_hIDComDev );
		return( FALSE );
		}

	m_bOpened = TRUE;

	return( m_bOpened );

}

BOOL CComm::Close( void )
{

	if( !m_bOpened || m_hIDComDev == NULL ) return( TRUE );

	if( m_OverlappedRead.hEvent != NULL ) CloseHandle( m_OverlappedRead.hEvent );
	if( m_OverlappedWrite.hEvent != NULL ) CloseHandle( m_OverlappedWrite.hEvent );
	CloseHandle( m_hIDComDev );
	m_bOpened = FALSE;
	m_hIDComDev = NULL;

	return( TRUE );

}

BOOL CComm::WriteCommByte( unsigned char ucByte )
{
	BOOL bWriteStat;
	DWORD dwBytesWritten;

	bWriteStat = WriteFile( m_hIDComDev, (LPSTR) &ucByte, 1, &dwBytesWritten, &m_OverlappedWrite );
	if( !bWriteStat && ( GetLastError() == ERROR_IO_PENDING ) ){
		if( WaitForSingleObject( m_OverlappedWrite.hEvent, 1000 ) ) dwBytesWritten = 0;
		else{
			GetOverlappedResult( m_hIDComDev, &m_OverlappedWrite, &dwBytesWritten, FALSE );
			m_OverlappedWrite.Offset += dwBytesWritten;
			}
		}

	return( TRUE );

}

int CComm::SendData( const char *buffer, int size )
{

	if( !m_bOpened || m_hIDComDev == NULL ) return( 0 );

	DWORD dwBytesWritten = 0;
	int i;
	for( i=0; i<size; i++ ){
		WriteCommByte( buffer[i] );
		dwBytesWritten++;
		}

	return( (int) dwBytesWritten );

}

int CComm::ReadDataWaiting( void )
{

	if( !m_bOpened || m_hIDComDev == NULL ) return( 0 );

	DWORD dwErrorFlags;
	COMSTAT ComStat;

	ClearCommError( m_hIDComDev, &dwErrorFlags, &ComStat );

	return( (int) ComStat.cbInQue );

}

int CComm::ReadData( void *buffer, int limit )
{

	if( !m_bOpened || m_hIDComDev == NULL ) return( 0 );

	BOOL bReadStatus;
	DWORD dwBytesRead, dwErrorFlags;
	COMSTAT ComStat;

	ClearCommError( m_hIDComDev, &dwErrorFlags, &ComStat );
	if( !ComStat.cbInQue ) return( 0 );

	dwBytesRead = (DWORD) ComStat.cbInQue;
	if( limit < (int) dwBytesRead ) dwBytesRead = (DWORD) limit;

	bReadStatus = ReadFile( m_hIDComDev, buffer, dwBytesRead, &dwBytesRead, &m_OverlappedRead );
	if( !bReadStatus ){
		if( GetLastError() == ERROR_IO_PENDING ){
			WaitForSingleObject( m_OverlappedRead.hEvent, 2000 );
			return( (int) dwBytesRead );
			}
		return( 0 );
		}

	return( (int) dwBytesRead );

}

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品国产第一区二区三区观看体验| 91亚洲男人天堂| 成人激情综合网站| 在线观看日产精品| 精品美女被调教视频大全网站| 中文字幕成人av| 香蕉加勒比综合久久| 国产成人午夜精品影院观看视频| 一本色道久久综合亚洲91| 欧美另类高清zo欧美| 国产欧美日韩另类一区| 亚洲一区二三区| 国产麻豆精品在线观看| 在线观看日产精品| 国产欧美一区二区精品忘忧草| 一区二区三区丝袜| 国产乱人伦偷精品视频免下载| 欧美中文字幕不卡| 国产区在线观看成人精品| 亚洲成人av一区| 成人综合在线视频| 911精品产国品一二三产区| 中文字幕一区日韩精品欧美| 首页国产欧美久久| 91浏览器入口在线观看| 久久综合久久99| 亚洲第四色夜色| 本田岬高潮一区二区三区| 91精品国产综合久久精品性色| 中文字幕一区二区三中文字幕| 麻豆成人91精品二区三区| 一本久久综合亚洲鲁鲁五月天| 久久亚洲精华国产精华液| 日韩福利视频网| 一本一道久久a久久精品| 国产日产欧美精品一区二区三区| 日本女优在线视频一区二区| 色婷婷精品久久二区二区蜜臀av | 图片区小说区区亚洲影院| 成人精品一区二区三区四区| 日韩精品一区二区三区四区| 亚洲最快最全在线视频| 成人免费视频视频在线观看免费 | 精品一区二区免费| 欧美日韩亚洲国产综合| 亚洲视频综合在线| 国产99一区视频免费 | 黑人精品欧美一区二区蜜桃| 欧美日韩美女一区二区| 亚洲免费观看在线视频| 成人的网站免费观看| 国产女主播视频一区二区| 精品系列免费在线观看| 欧美一级免费大片| 日韩精品欧美精品| 欧美色爱综合网| 亚洲一级在线观看| 在线观看91视频| 一区二区三区不卡在线观看| 91视频一区二区三区| 亚洲人成精品久久久久久| 99re亚洲国产精品| 1024精品合集| 一本久道中文字幕精品亚洲嫩| 国产精品乱子久久久久| 丁香五精品蜜臀久久久久99网站 | av不卡免费在线观看| 国产欧美一区二区三区在线看蜜臀| 极品少妇一区二区| 久久久久久久精| 成人三级伦理片| 国产精品电影一区二区三区| 波多野结衣精品在线| 国产精品嫩草影院av蜜臀| 成人丝袜18视频在线观看| 国产精品剧情在线亚洲| 99在线精品一区二区三区| 亚洲精品美国一| 欧美性生活影院| 日韩专区一卡二卡| 日韩欧美一二三四区| 久久99久久99| 欧美韩日一区二区三区| 成人av资源在线| 亚洲欧美日韩国产另类专区| 91国产免费观看| 午夜精品久久久久影视| 日韩精品资源二区在线| 国产精品一区二区三区乱码| 国产精品久久久久久久久晋中 | 亚洲国产美女搞黄色| 欧美二区三区的天堂| 精品伊人久久久久7777人| 久久日韩粉嫩一区二区三区| 不卡视频一二三四| 亚洲综合免费观看高清完整版在线 | 日韩免费观看高清完整版在线观看| 日本欧美一区二区三区乱码| 久久色.com| 色偷偷一区二区三区| 丝袜亚洲另类欧美| 久久久久久久网| 91麻豆福利精品推荐| 奇米在线7777在线精品| 欧美精品一区二区三区视频 | 亚洲黄色性网站| 51午夜精品国产| 粉嫩av一区二区三区在线播放 | 在线成人免费观看| 国产精品88888| 亚洲精品久久久蜜桃| 91精品免费观看| 成人精品国产福利| 午夜精品123| 中文字幕国产一区| 欧美日韩高清一区二区| 国产一区不卡视频| 洋洋成人永久网站入口| 精品精品欲导航| 一本色道久久综合狠狠躁的推荐 | 久久久久久**毛片大全| 91福利国产成人精品照片| 九九在线精品视频| 亚洲乱码中文字幕| 欧美xfplay| 在线观看欧美精品| 国产精品91一区二区| 水野朝阳av一区二区三区| 国产欧美一区二区精品久导航| 欧美日本视频在线| 成人动漫在线一区| 男人的天堂久久精品| 亚洲猫色日本管| 欧美高清在线精品一区| 9191久久久久久久久久久| 99视频有精品| 国产乱人伦偷精品视频免下载 | 欧美va天堂va视频va在线| 91视频在线看| 国产成人av自拍| 男女男精品视频| 亚洲一区二区三区在线看| 欧美国产精品久久| 精品国免费一区二区三区| 欧美日韩一区二区在线视频| 99久久精品一区二区| 国产一区二区调教| 免费三级欧美电影| 亚洲综合久久av| 国产精品国产精品国产专区不蜜| 91精品国产福利| 91国偷自产一区二区开放时间 | 亚洲黄色小视频| 中文字幕va一区二区三区| 精品久久国产97色综合| 3d动漫精品啪啪1区2区免费| 91网站最新网址| 国产91精品入口| 国产成人在线视频网站| 久久se精品一区精品二区| 日韩av网站免费在线| 亚洲一区在线电影| 亚洲美女区一区| 亚洲免费高清视频在线| 亚洲婷婷在线视频| 中文字幕中文字幕在线一区| 久久女同精品一区二区| 日韩精品一区国产麻豆| 日韩一级二级三级精品视频| 欧美日韩国产小视频| 欧美日韩美女一区二区| 欧美日韩二区三区| 精品视频一区三区九区| 91福利在线导航| 欧美亚洲国产bt| 欧美影视一区在线| 欧美性xxxxxx少妇| 欧美性生活久久| 欧美日韩高清不卡| 日韩一卡二卡三卡国产欧美| 制服视频三区第一页精品| 制服丝袜一区二区三区| 欧美一级淫片007| 精品国产凹凸成av人导航| 亚洲精品在线免费观看视频| 精品国产一区二区精华| 久久综合久久99| 中文字幕av免费专区久久| 国产人久久人人人人爽| 国产精品久久久久久福利一牛影视 | 美女被吸乳得到大胸91| 免费人成精品欧美精品| 韩国在线一区二区| 国产黄色精品视频| 成a人片亚洲日本久久| 91免费观看视频在线| 在线观看欧美日本| 欧美一级黄色录像| 久久久蜜桃精品| 亚洲色欲色欲www|