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

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

?? serialbuffer.cpp

?? 一個串口通信的程序
?? CPP
字號:
// SerialBuffer.cpp: implementation of the CSerialBuffer class.
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "SerialBuffer.h"
#include "SerialCommHelper.h"

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



USE_DEBUGDUMP


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

CSerialBuffer::CSerialBuffer()
{
	Init();
}
void CSerialBuffer::Init()
{
	::InitializeCriticalSection ( &m_csLock );
 	m_iCurPos		= 0;
	m_alBytesUnRead = 0;
	m_szInternalBuffer.erase ();

}
CSerialBuffer::~CSerialBuffer()
{
	::DeleteCriticalSection ( &m_csLock );

}
void CSerialBuffer::AddData( char ch )
{
	ATLTRACE6 (_T("CSerialBuffer : (tid:%d) AddData(char) called "), GetCurrentThreadId ());	
	m_szInternalBuffer += ch;
	m_alBytesUnRead += 1;
}

void CSerialBuffer::AddData( std::string& szData,int iLen ) 
{
	ATLTRACE6 (_T("CSerialBuffer : (tid:%d) AddData(%s,%d) called "), GetCurrentThreadId (),szData.c_str (),iLen);	
	m_szInternalBuffer.append ( szData.c_str () ,iLen);
	m_alBytesUnRead += iLen;
}

void CSerialBuffer::AddData( char *strData,int iLen ) 
{
	ATLTRACE6 (_T("CSerialBuffer : (tid:%d) AddData(char*,%d) called "), GetCurrentThreadId (),iLen);	
	ASSERT ( strData != NULL );
	m_szInternalBuffer.append ( strData,iLen);
	m_alBytesUnRead += iLen;
}

void CSerialBuffer::AddData( std::string &szData ) 
{
	ATLTRACE6 (_T("CSerialBuffer : (tid:%d) AddData(%s) called "), GetCurrentThreadId (),szData.c_str () );	
	m_szInternalBuffer +=  szData;
	m_alBytesUnRead += szData.size ();
	
}
void CSerialBuffer::Flush()
{
	LockBuffer();//鎖住buffer,防止其它程序做讀寫操作
	m_szInternalBuffer.erase ();
	m_alBytesUnRead = 0;
	m_iCurPos  = 0;
	UnLockBuffer();//釋放這個鎖
}

long CSerialBuffer::Read_N( std::string &szData,long  alCount ,HANDLE & hEventToReset)
{
	ATLTRACE6 (_T("CSerialBuffer : (tid:%d) Read_N() called "), GetCurrentThreadId ());	
	ASSERT ( hEventToReset != INVALID_HANDLE_VALUE ) ;
	
	
	LockBuffer();
	long alTempCount	= min( alCount ,  m_alBytesUnRead) ;
	long alActualSize	= GetSize();
   	
	szData.append (m_szInternalBuffer,m_iCurPos ,alTempCount);
	
	m_iCurPos +=  alTempCount ;
	
	m_alBytesUnRead -= alTempCount;
	if (m_alBytesUnRead == 0 )
	{
				ClearAndReset ( hEventToReset );
	}
 
	UnLockBuffer();
	ATLTRACE6 (_T("CSerialBuffer : (tid:%d) Read_N returned %d bytes (data:%s)  "), GetCurrentThreadId (),alTempCount,((szData)).c_str());	
	return alTempCount;
}





bool CSerialBuffer::Read_Available( std::string &szData,HANDLE & hEventToReset)
{
	ATLTRACE6 (_T("CSerialBuffer : (tid:%d) Read_Upto called "), GetCurrentThreadId ());

	LockBuffer();
	szData += m_szInternalBuffer ;
	
	ClearAndReset ( hEventToReset );
	
	UnLockBuffer();
	
	ATLTRACE6 (_T("CSerialBuffer : (tid:%d) Read_Available returned (data:%s)  "), GetCurrentThreadId (),((szData)).c_str());	
	return ( szData.size () > 0 );
}


void CSerialBuffer::ClearAndReset(HANDLE& hEventToReset)
{
	m_szInternalBuffer.erase();
	m_alBytesUnRead = 0;
	m_iCurPos= 0;
	::ResetEvent ( hEventToReset );
	
}

bool CSerialBuffer::Read_Upto( std::string &szData,char chTerm,long  &alBytesRead ,HANDLE & hEventToReset)
{
	return Read_Upto_FIX(szData,chTerm,alBytesRead ,hEventToReset);
}

bool CSerialBuffer::Read_Upto_FIX( std::string &szData,char chTerm,long  &alBytesRead ,HANDLE & hEventToReset)
{
	ATLTRACE6 (_T("CSerialBuffer : (tid:%d) Read_Upto called "), GetCurrentThreadId ());

	LockBuffer();
	alBytesRead = 0 ;
 	bool abFound = false;

	if ( m_alBytesUnRead > 0 ) 
	{//if there are some bytes un-read...
		int iActualSize = GetSize ();
 		int iIncrementPos = 0;
		for ( int i = m_iCurPos ; i < iActualSize; ++i )
		{
			//szData .append ( m_szInternalBuffer,i,1);
			szData+=m_szInternalBuffer[i];
			m_alBytesUnRead -= 1;
			iIncrementPos++;
			if ( m_szInternalBuffer[i] == 	chTerm) 
			{
				abFound = true;
				break;
			}
		}
		m_iCurPos += iIncrementPos;
		if ( m_alBytesUnRead == 0 ) 
		{
			ClearAndReset ( hEventToReset );
		}
	}
	UnLockBuffer();	
	return abFound;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩免费高清视频| 在线影院国内精品| 久久综合色天天久久综合图片| 日韩二区在线观看| 91精品国产色综合久久ai换脸 | 国产精品久久99| 99久久久免费精品国产一区二区| 亚洲少妇中出一区| 欧美手机在线视频| 日韩黄色小视频| 久久久国产精华| 99在线精品免费| 日韩在线一二三区| 精品日韩一区二区三区| 国产成人综合亚洲网站| 一区视频在线播放| 欧美麻豆精品久久久久久| 国产综合一区二区| 亚洲视频免费在线| 这里只有精品免费| 成人午夜碰碰视频| 亚洲成人一区二区在线观看| 精品国产一区二区三区不卡 | 色哦色哦哦色天天综合| 午夜精品久久久久久| 精品人伦一区二区色婷婷| 99久久精品免费看国产免费软件| 一区二区久久久| 日韩欧美国产系列| 色综合久久天天| 久久超碰97人人做人人爱| 国产精品久久久久aaaa樱花| 欧美日韩成人综合天天影院| 国产精品99久久久久久宅男| 夜夜嗨av一区二区三区网页| 欧美不卡视频一区| 99久久伊人久久99| 久久99国产精品尤物| 亚洲免费观看高清完整版在线观看 | 91久久精品一区二区| 麻豆久久一区二区| 亚洲午夜一二三区视频| 久久久久久久久久看片| 欧美日韩一区久久| av电影在线不卡| 国内精品久久久久影院色| 一区二区在线电影| 中文字幕第一区综合| 日韩一二三区视频| 91麻豆精东视频| 大胆欧美人体老妇| 极品美女销魂一区二区三区| 欧美日韩视频在线观看一区二区三区 | 水野朝阳av一区二区三区| 国产亚洲一区二区三区四区 | 国产一区二区三区av电影 | 成人网在线免费视频| 视频一区二区三区中文字幕| 亚洲日穴在线视频| 久久亚洲影视婷婷| 国产精品18久久久久久久久 | 91在线你懂得| 麻豆精品视频在线观看免费| 一区二区三区四区蜜桃| 国产精品水嫩水嫩| 国产色爱av资源综合区| 欧美videos中文字幕| 欧美一级午夜免费电影| 欧美日韩情趣电影| 欧美三级视频在线| 欧美日韩亚洲综合在线| 欧美综合欧美视频| 欧美日韩视频在线观看一区二区三区 | 日韩毛片高清在线播放| 中文av字幕一区| 中文字幕一区视频| 国产精品九色蝌蚪自拍| 中文字幕在线观看一区| 岛国一区二区三区| 欧美tickling挠脚心丨vk| 欧美日本精品一区二区三区| 欧洲av一区二区嗯嗯嗯啊| 色综合久久久久久久久久久| 91香蕉视频污| 欧美影院一区二区三区| 欧美日韩精品三区| 欧美日韩一区在线| 日韩欧美一级二级三级| 2023国产精品| 国产精品人妖ts系列视频| 国产精品美女久久久久av爽李琼 | 久久无码av三级| 久久久久高清精品| 国产精品久久久久久久久快鸭| 成人欧美一区二区三区小说| 伊人一区二区三区| 日韩精品一二三区| 韩国成人福利片在线播放| 精品视频在线免费观看| 国产精品灌醉下药二区| 中文字幕一区av| 一二三四区精品视频| 亚洲成人av资源| 精品亚洲国产成人av制服丝袜| 成人性色生活片| 91国产视频在线观看| 日韩一区二区三区视频| 国产日韩欧美麻豆| 亚洲综合精品久久| 久久精品国产77777蜜臀| 懂色一区二区三区免费观看| 色狠狠一区二区三区香蕉| 51精品秘密在线观看| 久久久久久久精| 亚洲国产精品视频| 国产乱码精品1区2区3区| 一本久道久久综合中文字幕| 日韩欧美第一区| 国产精品美女久久久久高潮| 日本伊人精品一区二区三区观看方式| 国产一区二区免费看| 色欧美片视频在线观看| 久久蜜桃一区二区| 国产精品888| 久久久噜噜噜久久人人看| 亚洲色图制服丝袜| 久久99深爱久久99精品| 成人av资源下载| 欧美蜜桃一区二区三区| 国产午夜精品福利| 日韩vs国产vs欧美| 99精品久久只有精品| 日韩精品中文字幕在线不卡尤物| 国产精品亲子乱子伦xxxx裸| 日韩高清电影一区| 色噜噜久久综合| 亚洲国产日韩综合久久精品| 国产乱码精品一区二区三区av| 欧美丝袜第三区| 1区2区3区精品视频| 国产一区二区久久| 欧美一区二区三区在| 亚洲精品v日韩精品| 高清av一区二区| 精品国精品国产| 天堂一区二区在线免费观看| 91亚洲国产成人精品一区二三| 久久嫩草精品久久久精品| 免费成人av在线播放| 精品视频在线看| 亚洲aⅴ怡春院| 精品免费国产一区二区三区四区| 国产精品成人免费| 国产精品系列在线播放| 精品日韩在线观看| 人人精品人人爱| 91麻豆精品国产91久久久资源速度| 18欧美亚洲精品| 岛国av在线一区| 日本一区二区三区四区在线视频 | 欧美日韩和欧美的一区二区| 国产精品大尺度| 成人av第一页| 中文字幕成人av| 成人黄色综合网站| 中文字幕亚洲电影| 99久久久国产精品| 亚洲婷婷国产精品电影人久久| 成人一道本在线| 国产精品国产三级国产普通话99| 成人美女视频在线看| 国产日韩欧美在线一区| 成人网在线免费视频| 亚洲丝袜精品丝袜在线| 色婷婷狠狠综合| 亚洲国产视频在线| 亚洲视频在线一区观看| caoporen国产精品视频| 中文字幕永久在线不卡| 在线观看日韩高清av| 亚洲成在人线在线播放| 欧美一区午夜精品| 久久www免费人成看片高清| 日韩欧美区一区二| 国产高清亚洲一区| 国产欧美日韩麻豆91| 91亚洲永久精品| 久久久亚洲欧洲日产国码αv| 欧美一区二区免费观在线| 日韩黄色片在线观看| 欧美岛国在线观看| 懂色av一区二区在线播放| 亚洲欧美精品午睡沙发| 欧美嫩在线观看| 国内精品在线播放| 亚洲欧美精品午睡沙发| 91精品国产免费| 粉嫩av一区二区三区| 亚洲五月六月丁香激情| 精品999久久久|