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

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

?? serialport.cpp

?? Virtual Studio 2005.net寫的程序
?? CPP
字號:
// SerialPort.cpp: implementation of the CSerialPort class.
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "SerialPort.h"

#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

CSerialPort::CSerialPort()
{
	m_portHandle=INVALID_HANDLE_VALUE;
	m_lBaudRate=CBR_57600;
}

CSerialPort::~CSerialPort()
{
	if(IsOpen())
		ClosePort();
}

void CSerialPort::monitor_data()
{
	DWORD thread_id;
	monitor_data_thread_handle = CreateThread(0, 0, CSerialPort::monitor_data_thread, this, 0, &thread_id);
}

DWORD WINAPI CSerialPort::monitor_data_thread(LPVOID arg)
{
	CSerialPort	*pSerialPort;
	pSerialPort = (CSerialPort *) arg;
	pSerialPort->monitor_data_thread_terminate = false;
	bool done;
	BOOL success;
	DWORD bytes;
	BYTE buf[1024];

	while (!pSerialPort->monitor_data_thread_terminate)
	{
		success = ReadFile (pSerialPort->m_portHandle, buf, 1024, &bytes,NULL);
		done = success != 0;
		if (!done)
		{
			DWORD rxgle = GetLastError ();
			ASSERT (rxgle == ERROR_IO_PENDING);
		}
		else
		{
			if (pSerialPort->data_func && !pSerialPort->monitor_data_thread_terminate)
			{
				pSerialPort->data_func (buf, bytes, pSerialPort->data_func_context);
			}
		}
	}

	TRACE("CSerialPort::monitor_data_thread exit\n");
	return 0;
}

int CSerialPort::WriteData(LPBYTE data, int dwLength)
{
	bool done;
	BOOL success;
	DWORD bytes;

	if (dwLength == 0) /* Be pessimistic and assume WriteFile would choke on zero length */
	{
		return 0;
	}
	else
	{
		success = WriteFile (m_portHandle, data, dwLength, &bytes,NULL);
		done = success != 0;

		if (!done)
		{
			DWORD txgle = GetLastError ();
			ASSERT (txgle == ERROR_IO_PENDING);
			return 0;
		}
	}

	return bytes;
}

BOOL CSerialPort::OpenPort(int PortNum)
{
	DCB dcb;
	BOOL success;
	COMMTIMEOUTS timeouts;
	// TODO: Add your dispatch handler code here
	CString portName;
	portName.Format(_T("com%d:"), PortNum);

#define WIN32_NO_SHARING 0
#define WIN32_NO_TEMPLATE_FILE 0
	m_portHandle = CreateFile (portName,
			GENERIC_READ | GENERIC_WRITE,
			WIN32_NO_SHARING, // mandatory
			0,
			OPEN_EXISTING, // mandatory
			0,//FILE_FLAG_OVERLAPPED,
			WIN32_NO_TEMPLATE_FILE // mandatory
			);
	if (m_portHandle == INVALID_HANDLE_VALUE)
	{
//		CString msg;
//		msg.Format(_T("Error %d"),GetLastError());
//		MessageBox(msg);
		return FALSE;
	}

	memset (&dcb, 0, sizeof (DCB));
	dcb.DCBlength = sizeof (DCB);

	//success = BuildCommDCB (cfgStr, &dcb); /* Note BuildCommDCB() turns off both hardware and software flow control */
	dcb.BaudRate=m_lBaudRate;
	dcb.DCBlength=sizeof(dcb);
	dcb.Parity=NOPARITY;
	dcb.ByteSize=8;
	dcb.StopBits =ONESTOPBIT;

	dcb.fBinary = 1 ;
	dcb.fRtsControl = RTS_CONTROL_ENABLE;
	dcb.fOutxCtsFlow = 0;
	dcb.fDtrControl=DTR_CONTROL_ENABLE;
	dcb.fOutxDsrFlow=0;
	dcb.fDsrSensitivity=0;
	dcb.fTXContinueOnXoff=1;
	dcb.fOutX = 0;
	dcb.fInX = 0;


//	dcb.fRtsControl = RTS_CONTROL_HANDSHAKE;
//	dcb.fOutxCtsFlow = 1;

//	dcb.fOutX = 1;
//	dcb.fInX = 1;


	success = SetCommState (m_portHandle, &dcb);
	ASSERT ((_T("SetCommState"), success));
	if (!success)
	{
		CloseHandle (m_portHandle);
		m_portHandle=INVALID_HANDLE_VALUE;
//		MessageBox(_T("SetCommState Error"));
		return FALSE;
	}

	timeouts.ReadIntervalTimeout = 10;
	timeouts.ReadTotalTimeoutMultiplier = 0;
	timeouts.ReadTotalTimeoutConstant = 0;
	timeouts.WriteTotalTimeoutMultiplier = 0;
	timeouts.WriteTotalTimeoutConstant = 5000;
	success = SetCommTimeouts (m_portHandle, &timeouts);
	ASSERT ((_T("SetCommTimeouts"), success));
	if (!success)
	{
		CloseHandle (m_portHandle);
		m_portHandle=INVALID_HANDLE_VALUE;
//		MessageBox(_T("SetCommTimeouts Error"));
		return FALSE;
	}

	monitor_data();

	return TRUE;
}

void CSerialPort::set_data_callback(void (*func)(void *,unsigned long,void *), void *context)
{
	ASSERT(func!=NULL);
	data_func=func;
	data_func_context=context;
}

void CSerialPort::ClosePort()
{
	if (monitor_data_thread_handle != INVALID_HANDLE_VALUE)		
	{
	    monitor_data_thread_terminate = true;
	}
	Sleep(0);
	if (m_portHandle != INVALID_HANDLE_VALUE)
	{
		CloseHandle (m_portHandle);
	}
	m_portHandle = INVALID_HANDLE_VALUE;

	return ;
}

BOOL CSerialPort::IsOpen()
{
	return m_portHandle!=INVALID_HANDLE_VALUE;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲一区二区三区四区五区黄 | 国产v综合v亚洲欧| 久久免费电影网| 国产精品69毛片高清亚洲| 久久伊99综合婷婷久久伊| 狠狠色2019综合网| 久久久久久久精| 成人性生交大合| 亚洲人吸女人奶水| 在线观看成人小视频| 午夜伦欧美伦电影理论片| 欧美一级久久久久久久大片| 国产精品99久久久久久似苏梦涵| 国产欧美精品一区二区色综合 | 色综合激情五月| 亚洲成人综合视频| ww亚洲ww在线观看国产| av欧美精品.com| 亚洲成av人片在线观看| 久久综合视频网| 91丨porny丨中文| 午夜欧美在线一二页| 2021久久国产精品不只是精品| 成人美女在线视频| 亚洲午夜视频在线观看| 欧美精品一区二区三区蜜桃视频 | 丝袜亚洲精品中文字幕一区| 日韩精品一区二区三区中文不卡| 成人免费视频免费观看| 丝瓜av网站精品一区二区| 国产视频一区在线观看| 91精品蜜臀在线一区尤物| 国产精品一区二区三区乱码| 一区二区三区不卡视频| 欧美mv日韩mv国产网站| 一本一本大道香蕉久在线精品 | 国模大尺度一区二区三区| 亚洲日本乱码在线观看| 精品毛片乱码1区2区3区| 91老司机福利 在线| 韩国视频一区二区| 亚洲一二三区在线观看| 久久精品欧美日韩| 91精品国产综合久久久久久久| 成人激情电影免费在线观看| 美腿丝袜在线亚洲一区| 亚洲一区在线观看网站| 欧美激情在线一区二区三区| 3d成人h动漫网站入口| 91亚洲精品一区二区乱码| 国产在线精品不卡| 日日嗨av一区二区三区四区| 一级日本不卡的影视| 国产精品三级av| 久久精品亚洲精品国产欧美kt∨| 88在线观看91蜜桃国自产| 在线精品视频免费播放| 成人高清免费观看| 激情五月婷婷综合网| 日韩和欧美一区二区三区| 亚洲一区二区在线视频| 亚洲精品视频在线看| 国产精品久久久99| 久久久久久久久久看片| 精品理论电影在线| 日韩西西人体444www| 欧美乱妇23p| 欧美日韩亚洲综合| 色偷偷久久人人79超碰人人澡 | 国产综合久久久久久久久久久久| 日韩—二三区免费观看av| 午夜在线电影亚洲一区| 亚洲成在线观看| 香蕉成人伊视频在线观看| 亚洲成人av一区二区| 亚洲一区二区三区中文字幕在线| 亚洲精品日产精品乱码不卡| 中文在线免费一区三区高中清不卡| 久久久久亚洲综合| 国产亚洲婷婷免费| 中文成人综合网| 国产欧美日韩卡一| 国产精品久久夜| 亚洲色图在线看| 一个色综合av| 亚洲欧美另类综合偷拍| 一级日本不卡的影视| 亚洲一区二区不卡免费| 亚洲国产成人高清精品| 青青草视频一区| 狠狠色狠狠色综合日日91app| 精品亚洲aⅴ乱码一区二区三区| 韩国中文字幕2020精品| 成人免费视频caoporn| 色8久久人人97超碰香蕉987| 欧美日韩免费观看一区三区| 欧美一区二区三区四区久久| 精品国产凹凸成av人导航| 国产偷国产偷亚洲高清人白洁| 中文字幕的久久| 一区二区三区日本| 免播放器亚洲一区| 国产成人av电影在线| 99国产一区二区三精品乱码| 在线观看91视频| 日韩欧美国产系列| 亚洲欧美一区二区视频| 亚洲成人tv网| 国产xxx精品视频大全| 欧美在线观看18| 久久婷婷国产综合国色天香 | 欧美性感一区二区三区| 欧美一级生活片| 国产精品灌醉下药二区| 午夜久久久久久久久久一区二区| 国内外成人在线| 一本色道a无线码一区v| 日韩免费高清av| 国产精品短视频| 男人的天堂久久精品| 成人av集中营| 欧美高清视频不卡网| 日本一区二区三区免费乱视频| 一区二区三区日韩欧美精品| 久久精品国产第一区二区三区 | 91视视频在线观看入口直接观看www | 国产一区二区日韩精品| 91浏览器打开| 国产日韩精品视频一区| 天天综合网天天综合色| 成人激情小说网站| 日韩视频一区在线观看| 夜夜嗨av一区二区三区四季av| 国产精品一区二区三区网站| 5566中文字幕一区二区电影| 亚洲欧洲三级电影| 精久久久久久久久久久| 欧美日韩国产欧美日美国产精品| 中文文精品字幕一区二区| 久久国产精品无码网站| 欧美日韩夫妻久久| 亚洲女与黑人做爰| 成人在线综合网| 精品99久久久久久| 视频在线观看91| 欧美视频在线一区二区三区 | 在线播放欧美女士性生活| 亚洲精品第1页| 97se亚洲国产综合自在线观| 久久久久国产精品厨房| 美日韩一级片在线观看| 欧美日本视频在线| 一区二区三区在线观看国产| zzijzzij亚洲日本少妇熟睡| 26uuu国产电影一区二区| 麻豆精品一区二区综合av| 欧美老肥妇做.爰bbww视频| 有坂深雪av一区二区精品| 91色porny蝌蚪| 国产精品久久久久7777按摩| 国产99精品国产| 国产欧美日韩不卡| 夫妻av一区二区| 国产精品伦一区二区三级视频| 国产福利91精品一区| 久久久欧美精品sm网站| 国产一区二区伦理| 久久理论电影网| 国产成人免费在线观看不卡| 国产亚洲一区二区三区四区 | 精品国产一区二区三区久久影院 | 色综合天天综合| 椎名由奈av一区二区三区| 91视频观看免费| 亚洲男人的天堂在线aⅴ视频| 91一区二区在线| 亚洲一区免费视频| 91精品国产aⅴ一区二区| 蜜桃av一区二区在线观看| 精品国产乱码久久久久久老虎| 激情图片小说一区| 国产人妖乱国产精品人妖| a4yy欧美一区二区三区| 亚洲精品成人少妇| 欧美视频一区二区三区| 毛片不卡一区二区| 久久久亚洲午夜电影| 99精品国产99久久久久久白柏 | 免费人成精品欧美精品| 精品粉嫩aⅴ一区二区三区四区| 国产精品亚洲成人| 亚洲日本在线a| 欧美一区二区三区视频免费播放| 精品夜夜嗨av一区二区三区| 国产精品久线在线观看| 欧美人伦禁忌dvd放荡欲情| 久久成人麻豆午夜电影| 国产精品激情偷乱一区二区∴| 欧美日韩三级在线| 国产精一区二区三区|