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

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

?? bluetoothclient.cpp

?? 關于symbian s60 2rd如何利用手機藍牙進行通訊
?? CPP
字號:
/**
*
* @brief Definition of CBluetoothClient
*
* Copyright (c) EMCC Software Ltd 2003
* @version 1.0
*/

// System include
#include <s32mem.h>

// User include
#include "BluetoothClient.h"
#include "BluetoothDefinitions.h"
#include "BluetoothObserver.h"

/**
* Constructor.
*
* Private - must use factory constructor
* Set observer and flag to indicate not connected
* Add this active object to the scheduler
*
* @see NewL
* @param aObserver a reference to the "mix-in" class MBluetoothObserver.
*
**/
CBluetoothClient::CBluetoothClient(MBluetoothObserver& aObserver)
: CActive(CActive::EPriorityStandard),
  iObserver(aObserver),
  iState(EDisconnected)
	{
	CActiveScheduler::Add(this);
	}

/**
* Destructor
*
* Cancel this active object, and disconnect the Client
*
**/
CBluetoothClient::~CBluetoothClient()
	{
	Cancel();
	Disconnect();
	}


/**
* Factory Constructor.
* Only available way to construct class.
* This function can leave L
*
* @see ConstructL
* @param  aObserver reference to the observer to notify
* @return new instance of the CBluetoothClient
*/
CBluetoothClient* CBluetoothClient::NewL(MBluetoothObserver& aObserver)
	{
	CBluetoothClient* self = new (ELeave) CBluetoothClient(aObserver);
	CleanupStack::PushL(self);
	self->ConstructL();
	CleanupStack::Pop(self);
	return self;
	}


/**
* Second Stage Constructor.
* This function can leave L
* @param none
* @see NewL
* @see NewLC
* @param none
* @return none
*/
void CBluetoothClient::ConstructL()
	{
	}

/**
* Disconnect when tidying up this active object.
* @param none
* @return none
**/
void CBluetoothClient::DoCancel()
	{
	Disconnect();
	}

/**
* ConnectToServerL.
* Set up Socket Address from the Bluetooth Address and Port number passed through as parameters.
* Connect to Socket Server
* Open a socket on the Server on the RFCOMM protocol (KServerTransportName)
* Issue an asynchronous Connect on the socket, utilising the remote device address information
*
* @param aBTDevAddr address of the bluetooth device to connect to.
* @param aPort the port to connect to on the device specified
* @return none
**/
void CBluetoothClient::ConnectToServerL(const TBTDevAddr& aBTDevAddr, const TInt aPort)
	{
	iState = EConnecting;

	iSocketAddress.SetBTAddr(aBTDevAddr);
	iSocketAddress.SetPort(aPort);

	User::LeaveIfError(iSocketServer.Connect());
	User::LeaveIfError(iSendingSocket.Open(iSocketServer, KServerTransportName));

	iSendingSocket.Connect(iSocketAddress, iStatus);

#ifdef __WINS__
	User::After(1); // Fix to allow emulator client to connect to server
#endif

	SetActive();
	}

/**
* SendL.
*
* Issue an asynchronous Write on the socket, passing through the message to send
*
* @param aMessage the message to send
* @return none
**/
void CBluetoothClient::Send(const TDesC& aMessage)
	{
	TRAPD(err, SendL(aMessage));
	}

void CBluetoothClient::SendL(const TDesC& aMessage)
	{
	iMessage.Zero();
	TDesBuf buffer;	
	buffer.Set (iMessage);
	
	RWriteStream stream(&buffer);
	CleanupClosePushL(stream);

	stream << aMessage;
	
	CleanupStack::PopAndDestroy();

	iState = ESendData;
	iSendingSocket.Write(iMessage, iStatus);
	SetActive();
	}

/**
* RequestData.
*
* Issue an asynchronous receive function on the socket, passing through a buffer to be populated.
*
* @param none
* @return none
**/
void CBluetoothClient::RequestData()
	{
	iMessage.Zero();

	iState = EWaitingForMessage;
	iSendingSocket.RecvOneOrMore(iMessage, 0, iStatus, iLen);
	SetActive();
	}

/**
* RunL
*
* Called when an asynchronous request completes.
* iStatus variable indicates error conditions
* iState indicates present state of the Client
*
* @param none
* @return none
**/
void CBluetoothClient::RunL()
	{
	if (iStatus.Int() == KErrNone)
		{
		switch (iState)
			{
			case EConnecting:
				{
				iObserver.ConnectedL();
				iState = EConnected;
				break;
				}

			case EWaitingForMessage:
				{
				iState = EConnected;

				TDesBuf buffer;	
				buffer.Set (iMessage);

				RReadStream stream (&buffer);
				CleanupClosePushL(stream);

				TBuf<KMaxMessageLength> rxBuf;

				stream >> rxBuf;

				CleanupStack::PopAndDestroy();
				
				iObserver.DataReceivedL(rxBuf);
				break;
				}

			case ESendData:
				{
				RequestData();
				break;
				}

			default:
				Panic(EInvalidClientState);
				break;
			}
		}
	else
		{
		Disconnect();
		iObserver.HandleErrorL(iStatus.Int());
		}
	}

/**
* Disconnect
*
* Cancel any outstanding requests.
* Close the socket
* Close the connection to the socket server
*
* @param none
* @return none
**/
void CBluetoothClient::Disconnect()
	{
	if (iState != EDisconnected)
		{
		iSendingSocket.CancelAll();
		iSendingSocket.Close();
		iSocketServer.Close();
		}

	iState = EDisconnected;
	}
/**
 * Returns connected state.
 *
 * @param none
 * @retval boolean, true if client is connected.
 */
TBool CBluetoothClient::IsConnected()
	{
	return !(iState == EDisconnected);
	}

/**
 * Returns information on connected state.
 *
 * @param none
 * @retval boolean, true if the client is connected and can send data.
 */
TBool CBluetoothClient::AvailableToSend()
	{
	return (iState == EConnected);
	}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产a区久久久| 色94色欧美sute亚洲线路一ni| 日本三级亚洲精品| 久久av资源站| 国产精品一区一区| 91视视频在线观看入口直接观看www | 日韩欧美久久久| 欧美一级片在线看| 精品国产91久久久久久久妲己| 精品国产乱码久久久久久夜甘婷婷 | 国产99精品视频| 99久久综合99久久综合网站| 欧亚洲嫩模精品一区三区| 91精品国产一区二区三区香蕉| 久久久久高清精品| 亚洲一区二区精品视频| 精品一区二区在线看| 成人免费观看av| 欧美高清视频在线高清观看mv色露露十八 | 激情六月婷婷久久| 91成人网在线| 国产欧美一区二区精品久导航| 中文字幕欧美激情| 婷婷开心久久网| 成人精品高清在线| 在线免费观看一区| 日韩精品综合一本久道在线视频| 日韩一区二区在线看| 国产精品美女久久久久久2018| 亚洲第一成人在线| 一本一道久久a久久精品 | 有坂深雪av一区二区精品| 久久99精品国产.久久久久久| 在线国产亚洲欧美| 国产精品青草综合久久久久99| 免费精品视频在线| 欧美日韩激情一区| 亚洲影院免费观看| 色域天天综合网| 亚洲免费毛片网站| 91小视频在线| 亚洲视频每日更新| 99精品国产热久久91蜜凸| 久久久精品日韩欧美| 激情综合色播五月| 久久精品一区二区三区av | 色婷婷av一区二区三区大白胸| 国产精品久久久久久亚洲伦| 国产精品99久久久| 久久精品亚洲乱码伦伦中文| 国产毛片精品视频| 亚洲国产精品黑人久久久| 成人久久久精品乱码一区二区三区| 久久久精品人体av艺术| 高清在线不卡av| 中文字幕中文字幕一区二区| 91女神在线视频| 天天综合色天天| 久久久久久黄色| 成人成人成人在线视频| 欧美一区二区三区在线视频| 久久99精品国产91久久来源| 精品国产麻豆免费人成网站| 精品一区二区三区在线观看| 欧美videossexotv100| 亚洲欧美偷拍另类a∨色屁股| 狠狠色丁香九九婷婷综合五月| 精品区一区二区| 91蝌蚪porny九色| 午夜视频在线观看一区| 精品国一区二区三区| 成人一级片在线观看| 亚洲一区二区欧美| 精品日韩一区二区三区免费视频| 奇米在线7777在线精品| 中文字幕一区二区三区四区| 日本高清不卡视频| 国产主播一区二区| 亚洲视频精选在线| 欧美xxx久久| 91成人免费网站| 国产成人精品免费一区二区| 亚洲一区二区三区激情| 久久先锋资源网| 色综合久久久久久久久| 国内外成人在线视频| 亚洲精品成人少妇| 久久免费视频色| 欧美精品在线观看一区二区| 国产一区二区在线免费观看| 亚洲最色的网站| 国产精品第一页第二页第三页| 欧美午夜免费电影| 成人国产精品免费观看视频| 午夜精品一区二区三区免费视频| 亚洲国产高清不卡| 日韩欧美高清一区| 色网站国产精品| 91传媒视频在线播放| 91在线观看一区二区| 狠狠色丁香久久婷婷综| 日本成人在线网站| 日韩经典中文字幕一区| 亚洲一区在线播放| 一级特黄大欧美久久久| 亚洲一区二区三区视频在线| 亚洲精品成人a在线观看| 亚洲视频电影在线| 亚洲精品亚洲人成人网在线播放| 久久久高清一区二区三区| 久久久亚洲精品石原莉奈| 日韩一级欧美一级| 亚洲精品一区二区三区福利| 欧美一级生活片| 欧美日韩不卡在线| 91精品国产入口在线| 在线电影欧美成精品| 欧美色中文字幕| 日韩欧美亚洲一区二区| 精品久久人人做人人爱| 国产欧美一区二区三区网站| 亚洲男同性恋视频| 亚洲成a人片综合在线| 五月婷婷欧美视频| 精品一区二区三区蜜桃| jlzzjlzz国产精品久久| 99国产精品国产精品久久| 欧美中文字幕一区二区三区| 欧美日韩中文一区| 亚洲精品一区二区三区蜜桃下载| 国产亚洲一二三区| 亚洲精品ww久久久久久p站| 免费人成精品欧美精品| 久久91精品国产91久久小草| 91麻豆自制传媒国产之光| 欧美三级在线播放| 中文字幕不卡的av| 天天色 色综合| 欧美日韩三级在线| 亚洲国产经典视频| 日韩精品国产欧美| 色综合视频在线观看| 国产欧美日韩亚州综合| 蜜臀av一区二区在线观看| 91免费观看国产| 成人激情免费视频| 蜜臂av日日欢夜夜爽一区| 亚洲精品免费看| 亚洲精品国产a| 麻豆国产欧美日韩综合精品二区| gogogo免费视频观看亚洲一| 欧美日韩色综合| 亚洲精品福利视频网站| 国产福利精品导航| 久久婷婷一区二区三区| 视频一区在线播放| 色狠狠综合天天综合综合| 亚洲欧美中日韩| 成人国产在线观看| 欧美国产精品专区| 国产精品77777| 国产精品乱人伦| 成人免费高清在线| 成人免费一区二区三区视频| 国产精品123| 中文字幕在线观看不卡| 不卡视频在线看| 日韩理论片网站| 成人动漫一区二区| 亚洲欧洲www| 91福利在线免费观看| 亚洲在线中文字幕| 91麻豆精品国产91久久久久久久久 | 久久久久久一二三区| 国产一区二区成人久久免费影院 | 一区二区三国产精华液| 欧美又粗又大又爽| 日韩成人精品视频| 久久久三级国产网站| 99久久777色| 亚洲日本免费电影| 91精品国产入口| 成人在线视频一区| 亚洲午夜影视影院在线观看| 欧美三级视频在线观看| 国产一区二区不卡| 一区二区三区欧美激情| 欧美一区二区三区免费| 成人精品在线视频观看| 亚洲一区在线观看网站| 久久久亚洲综合| 国产成人av电影| 亚洲免费视频中文字幕| 精品国产乱码久久久久久牛牛| 成人免费av资源| 麻豆久久久久久久| 一区二区三区在线观看视频| 久久青草欧美一区二区三区| 欧美性极品少妇| 成人午夜电影网站|