⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 bth_connection.cpp

📁 通过手机蓝牙控制个人电脑上的幻灯片的播放
💻 CPP
字号:
#include "stdafx.h"
#include "BTH_Connection.h"
#include "Base64.h"

using namespace std;
BTH_Connection::BTH_Connection(){
	BTH_Conn = new BTH_Mobile_Conn();
}

BTH_Connection::~BTH_Connection(){
	
}

void BTH_Connection::convertCharToTCHAR(char *c, TCHAR* t){
	int i = 0;
	while (c[i] != '\0'){
		t[i] = (TCHAR) c[i];
		i++;
		}
	t[i] = (TCHAR) c[i];
	}

void BTH_Connection::convertTCHARToChar(char *c, TCHAR* t){
	int i = 0;
	while (t[i] != '\0'){
		c[i] = (char) t[i];
		i++;
	}
	c[i] = (char) t[i];
}

void BTH_Connection::Replace( char *str, char c1, char c2 )
{
unsigned int i;
for( i = 0; i < strlen( str ); i++ )
if( strcmp(str,(char*)c1)==0 )
str = &c2;
} 

bool BTH_Connection::ListenConnection(void){
	int errCode = BTH_Conn->ListenMsg();
	bool IsListenSuccess = false;
	switch(errCode){
			case 0:
				IsListenSuccess = false;
				break;
			case 1:
				IsListenSuccess = true;
				break;
			default:
				break;
		}
	return IsListenSuccess;
}

bool BTH_Connection::AcceptConnection(void){
	BTH_Conn->AcceptMsg();
	return true;
	}

bool BTH_Connection::StartBTH(void){
	if(BTH_Conn->InitialiseBluetooth()==0){
		return false;
	}

	if(BTH_Conn->InitialiseWinsock()==0){
		return false;
	}

	int intErrCode = BTH_Conn->InitialiseSocket();
	if(intErrCode ==0){
		return false;
	}
	else if(intErrCode == 1){
		return false;
	}
	return true;
}

bool BTH_Connection::RegisterBlueToothService(void){
	bool IsRegSuccess = false;
	int errCode = BTH_Conn->RegisterBTHService();
	switch(errCode){
		case 0:
			IsRegSuccess = false;
			break;
		case 1:
			IsRegSuccess = false;
			break;
		case 2:
			IsRegSuccess = true;
			break;
		default:
			break;
		}
	return IsRegSuccess;
}

char* BTH_Connection::Recieve(void){
	return BTH_Conn->RecieveMsg();	
}

bool BTH_Connection::Send(char* strMsg){
	BTH_Conn->SendMsg(strMsg);
	return true;
}
bool BTH_Connection::SendMsg(char* strMsg){
	BTH_Conn->SendMsg(strMsg);
	return true;
}

std::string* BTH_Connection::RecieveMessage(void){
	char* buffer = Recieve();
	std::cout<<"="<<buffer<<"="<<endl;
	char* tmp;
	std::string* result;
	int intPack=0;
	int intLastPackSize =0;
	bool IsSplit = false;
	char* part;
	std::string* strNull = new string("");
	//---pack num ----
	tmp = strtok(buffer,"|");
	if(tmp!=NULL){
		intPack = atoi(tmp);
	}else{
		return strNull;
	}
	//-----last pack size-----
	tmp = strtok(NULL,"|");
	if(tmp!=NULL){
		intLastPackSize = atoi(tmp);
	}else{
		return strNull;
	}
	
	if(intPack==0){	
		tmp = strtok(NULL,"|");
		std::cout<<"|"<<tmp<<"|"<<std::endl;
		char* tt = new char[intLastPackSize];
		strcpy(tt,"");
		strncat(tt,tmp,intLastPackSize);
		std::string s(tt);
		std::cout<<"|"<<s<<"|"<<endl;

		string* ss=new string(base64_decode(s));
		 return ss;
		}else{
			part = new char[intPack*50+intLastPackSize];
			strcpy(part,"");

			int count =0;
			while(intPack>=0){
				std::string* ttt = new std::string(Recieve());
				if(intPack>0)
					strcat(part,ttt->c_str());
				else
					strncat(part,ttt->c_str(),intLastPackSize);
				intPack--;
				}

			std::string s(part);
			std::cout<<"|"<<part<<"|"<<endl;
			result=new string(base64_decode(s));
		}
	return result;	
}

void BTH_Connection::CloseConnection(void){
	BTH_Conn->TerminateSocket();
	BTH_Conn->TerminateWinsock();
	}

bool BTH_Connection::IsDisconnected(void){
	return BTH_Conn->IsDisconnect();
	}

void BTH_Connection::Test(){
	BTH_Conn->InitialiseWinsock();
	BTH_Conn->InitialiseSocket();
	BTH_Conn->RegisterBTHService();
	BTH_Conn->ListenMsg();
	//	printf( "Waiting for a client to connect...\n" );
	BTH_Conn->AcceptMsg();
	}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -