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

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

?? sdkfunc.cpp

?? 藍(lán)牙模塊資料,只是一些資料,收集到的,可能不是很好,但是對(duì)初學(xué)者有參考價(jià)值
?? CPP
?? 第 1 頁(yè) / 共 3 頁(yè)
字號(hào):
/************************************************************************************
// Sample code for calling IVT BlueSoleil APIs

  Copyright (c) 2004 -2005 , IVT Corporation. All rights reserved.
  
*******************************************************************************************/

#include "main.h"
#include "SdkFunc.h"
#include "HelpFunc.h"
#include <stdio.h>
#include "menu.h"
#include "ComPort.h"
#include "ConnectCheck.h"

GENERAL_CONNECT_INFO g_connList[MAX_CONNECT_COUNT] = {0};
GENERAL_SERVICE_INFO g_svcList[MAX_SERVICE_COUNT]={0};
SPPEX_INFO g_sppexSvr[MAX_SPPEX]={0};
DWORD g_dwLastError;

BOOL SDK_Init()
{
	
    DWORD dwBtVersion;
	
	if(!BT_InitializeLibrary()){
		printf("BT_InitializeLibrary() failed!\n");
		return FALSE;
	}
	dwBtVersion = BT_GetVersion();
	printf("BlueSoleil API version: %d.%d\n",LOBYTE(LOWORD(dwBtVersion)),HIBYTE(LOWORD(dwBtVersion)));
	
	BT_GetBtSpecVersion(&dwBtVersion);
	printf("Compliant BT Spec version: %d.%d\n",LOBYTE(LOWORD(dwBtVersion)),HIBYTE(LOWORD(dwBtVersion)));
	
	ChangeMenu2(MENU_STANDBY);
	ShowMenu();
	return TRUE;
	
}



void SDK_Done()
{
	BT_UninitializeLibrary();	
	ChangeMenu2(MENU_IDLE);
}

void SDK_BtPair()
{
	BLUETOOTH_DEVICE_INFO devInfo={0};
	devInfo.dwSize = sizeof(BLUETOOTH_DEVICE_INFO);
	memcpy(devInfo.address,g_targetBdAddr,6);
	
	char lpPinCode[MAX_PIN_CODE_LENGTH]={0};
	WORD wPinCodeLen = 0;
	
	GetPrivateProfileString("BT_PAIR_DEVICE", "Pin Code", NULL, lpPinCode, MAX_PIN_CODE_LENGTH, g_szIniPath);
	wPinCodeLen = strlen(lpPinCode);
	
	int bKeepOldKeyOnFail;
	bKeepOldKeyOnFail=GetPrivateProfileInt("BT_PAIR_DEVICE", "KeepOldKeyOnFail", 0, g_szIniPath);
	
	int bShowPincode;
	bShowPincode=GetPrivateProfileInt("BT_PAIR_DEVICE", "ShowPincode", 0, g_szIniPath);
	
	DWORD dwResult;
	dwResult=BT_PairDevice(&devInfo, wPinCodeLen, ((wPinCodeLen == 0) ? NULL : (UCHAR*)lpPinCode),bKeepOldKeyOnFail,bShowPincode);
	PrintError("BT_PairDevice",dwResult);
}

void SDK_BtUnpair()
{
	DWORD dwResult;
	dwResult = BT_UnpairDevice(g_targetBdAddr);
	PrintError("BT_UnpairDevice",dwResult);
}

void SDK_BtInquiry()
{
	UCHAR	ucInqMode = INQUIRY_GENERAL_MODE,
		ucInqLen = 15;
	BLUETOOTH_DEVICE_INFO	lpDevsList[MAX_SERVICE_COUNT] = {0};
	DWORD	DevsListLen = sizeof(BLUETOOTH_DEVICE_INFO) * MAX_SERVICE_COUNT;
	
	char temp[MAX_PATH]={0};
	if(GetPrivateProfileString("BT_INQUIRY_DEVICE", "Inquiry Mode", NULL, temp, MAX_PATH, g_szIniPath)==0){
		printf("Get Inquiry Mode Failed!\n");
		return;
	}
	ucInqMode = atoi(temp);
	//Get Inquiry Length		0x00-0xFF
	if(GetPrivateProfileString("BT_INQUIRY_DEVICE", "Inquiry Length", NULL, temp, MAX_PATH, g_szIniPath)==0){
		printf("Get Inquiry Mode Failed!\n");
		return;
	}
	ucInqLen = atoi(temp);
	if(ucInqLen<=0){
		printf("Get Inquiry Mode Failed!\n");
		return;
	}
	
    BOOL bAsynchronous = GetPrivateProfileInt("BT_INQUIRY_DEVICE", "bAsynchronous",1, g_szIniPath);
	
	DWORD dwResult;
	if(bAsynchronous)
		DevsListLen = 0;
	
	dwResult = BT_InquireDevices(ucInqMode, ucInqLen,  &DevsListLen, lpDevsList);
	PrintError("BT_InquireDevices",dwResult);
	
	if(!bAsynchronous && dwResult == BTSTATUS_SUCCESS){
		printf("Devices List\n");
		DWORD i, offset;
		offset = sizeof(BLUETOOTH_DEVICE_INFO);
		BLUETOOTH_DEVICE_INFO *pDevice;
		for(i=0; i<((DevsListLen)/sizeof(BLUETOOTH_DEVICE_INFO)); i++){
			pDevice=(BLUETOOTH_DEVICE_INFO*)((UCHAR*)lpDevsList+i*offset);
			
			printf("Device No.%d\n        Device Address: %02X:%02X:%02X:%02X:%02X:%02X\n",
				i,
				pDevice->address[5],
				pDevice->address[4],
				pDevice->address[3],
				pDevice->address[2],
				pDevice->address[1],
				pDevice->address[0]);
			
			DWORD dwMask = 0;
			BLUETOOTH_DEVICE_INFO_EX devInfo = {0};
			memcpy(&devInfo.address, pDevice->address, DEVICE_ADDRESS_LENGTH);
			devInfo.dwSize = sizeof(BLUETOOTH_DEVICE_INFO_EX);
			devInfo.szName[0]='\0';
			dwMask = MASK_DEVICE_NAME;
			
			DWORD dwResult;
			dwResult = BT_SetRemoteDeviceInfo(dwMask, &devInfo);
			PrintError("BT_SetRemoteDeviceInfo",dwResult);
			dwResult = BT_GetRemoteDeviceInfo(dwMask, &devInfo);
			PrintError("BT_GetRemoteDeviceInfo",dwResult);
			
			printf("        Device Name: %s\n", devInfo.szName);
			PrintDeviceClassInfo(pDevice->classOfDevice);
			if(pDevice->bPaired)
				printf("        Device Is Paired: Yes\n");
			else
				printf("        Device Is Paired: No\n");
		}
	}
}

void SDK_BtBrowseServices()
{
	BLUETOOTH_DEVICE_INFO devInfo={0};
	devInfo.dwSize = sizeof(BLUETOOTH_DEVICE_INFO);
	memcpy(devInfo.address,g_targetBdAddr,6);
	
	GENERAL_SERVICE_INFO pClsidList[MAX_SERVICE_COUNT]={0};
	DWORD ClsidListLen = MAX_SERVICE_COUNT*sizeof(GENERAL_SERVICE_INFO);
	BOOL bBrowseAllService = TRUE;
	
	//Clear the g_device_service_info
	memset((void*)g_svcList, 0, MAX_SERVICE_COUNT*sizeof(GENERAL_SERVICE_INFO));
	
	char temp[MAX_PATH]={0};
	//Get Browse All Services
	if(GetPrivateProfileString("BT_BROWSE_SERVICE", "Browse All Services", NULL, temp, MAX_PATH, g_szIniPath)==0){
		printf("Get Browse All Services Failed!\n");
		return;
	}
	strcpy(temp, strupr(temp));
	if(strcmp(temp, "TRUE") == 0)
		bBrowseAllService = TRUE;
	else if(strcmp(temp, "FALSE") == 0)
		bBrowseAllService = FALSE;
	else{
		printf("Invalid Browse All Service!\n");
		return;
	}
	
	if(!bBrowseAllService){
		if(GetPrivateProfileString("BT_BROWSE_SERVICE", "Specific Service Class", NULL, temp, MAX_PATH, g_szIniPath)==0){
			printf("Get Specific Service Class Failed!\n");
			return;
		}
		if((pClsidList[0].wServiceClassUuid16 = atoi(temp)) == 0){
			printf("Invalid Specific Service Class!\n");
			return;
		}
	}
	DWORD dwReusult;
	dwReusult = BT_BrowseServices(&devInfo, bBrowseAllService, &ClsidListLen, pClsidList);
	PrintError("BT_BrowseServices",dwReusult);
	if(dwReusult  ==BTSTATUS_SUCCESS)	{
		printf("Device Address: %02X:%02X:%02X:%02X:%02X:%02X \n",
			g_targetBdAddr[5],
			g_targetBdAddr[4],
			g_targetBdAddr[3],
			g_targetBdAddr[2], 
			g_targetBdAddr[1], 
			g_targetBdAddr[0]); 
		printf("#	Svc ID	Svc Handle	Svc Name\n");
		for(DWORD i=0; i<ClsidListLen/sizeof(GENERAL_SERVICE_INFO);i++){
			printf("#%d	0x%x	%d	%s\n", i, pClsidList[i].wServiceClassUuid16, pClsidList[i].dwServiceHandle,pClsidList[i].szServiceName);
			g_svcList[i].wServiceClassUuid16 = pClsidList[i].wServiceClassUuid16;
			g_svcList[i].dwServiceHandle = pClsidList[i].dwServiceHandle;
			g_svcList[i].dwSize = pClsidList[i].dwSize;
		}
	}
	
}

void PostConnect(DWORD dwHanlde, WORD wSvcId, BYTE* pParam)
{
	switch(wSvcId)
	{
	case CLS_SERIAL_PORT:
		{
			//Start IO on the COM port
			int bDClientIO = GetPrivateProfileInt("SPP_COM_PORT", "DO Client IO", 0,g_szIniPath);
			if(bDClientIO)
				StartIoOnComport(dwHanlde,((PSPP_CLIENT_PARAM)pParam)->ucComPort, TRUE);
		}
		break;
	case CLS_HEADSET:
	case CLS_HANDSFREE:
		{
		}
		break;
	default:;
	}
}


void SDK_BtConnectService()
{
	SDK_BtBrowseServices();
	
	printf("Please input the number of the service. (-1 to return)\n");
	
	int nInput;
	scanf("%d",&nInput);
	if(nInput == -1 )
		return;
	
	if(nInput > MAX_SERVICE_COUNT || nInput<0 || g_svcList[nInput].wServiceClassUuid16 ==0){
		printf("Invalid item.\n");
	}
	
	BLUETOOTH_DEVICE_INFO devInfo={0};
	devInfo.dwSize = sizeof(BLUETOOTH_DEVICE_INFO);
	memcpy(devInfo.address, g_targetBdAddr, 6);
	
	BYTE abyConnParam[512];
	DWORD dwParamLen = 512;
	
	if(!ConfigConnectParams(g_svcList[nInput].wServiceClassUuid16,abyConnParam,&dwParamLen)){
		printf("Failed to config parameters.\n");
		return;
	}
	
	DWORD dwResult;
	DWORD dwHandle;
	dwResult = BT_ConnectService(&devInfo, &g_svcList[nInput], dwParamLen==0 ? NULL : abyConnParam, &dwHandle);
	PrintError("BT_ConnectService",dwResult);
	
	if(dwResult == BTSTATUS_SUCCESS){
		PostConnect(dwHandle, g_svcList[nInput].wServiceClassUuid16,abyConnParam);
	}
}

void SDK_BtDisConnectService()
{
	SDK_EnumConnections();
	
	printf("Please input the number of the connection. (-1 to return)\nBSOL_CLIENT>");
	
	int nInput;
	scanf("%d",&nInput);
	if(nInput == -1 )
		return;
	
	if(nInput > MAX_CONNECT_COUNT || nInput<0 || g_connList[nInput].dwHandle ==0){
		printf("Invalid input.\n");
		return;
	}
	
	DWORD dwResult = BT_DisconnectService(g_connList[nInput].dwHandle);
	PrintError("BT_DisconnectService",dwResult);
	
	if(dwResult == BTSTATUS_SUCCESS){
		memset(&g_connList[nInput], 0 , sizeof(GENERAL_CONNECT_INFO));
	}
	
}


void SDK_BtGetRemoteInfo()
{
	DWORD dwMask = 0;
	
	BLUETOOTH_DEVICE_INFO_EX devInfo={0};
	devInfo.dwSize = sizeof(BLUETOOTH_DEVICE_INFO_EX);
	memcpy(devInfo.address, g_targetBdAddr, 6);
	
	char temp[MAX_PATH];
	if(GetPrivateProfileString("GET_REMOTE_DEVICE_INFO", "Mask", NULL, temp, MAX_PATH, g_szIniPath)==0){
		printf("Get Mask Failed!\n");
		return;
	}
	if((dwMask = atoi(temp)) == 0){
		printf("Invalid Parameters: 'Mask'\n");
		return;
	}
	//dwMask = 0x0000ffff;
	DWORD dwResult = BT_GetRemoteDeviceInfo(dwMask, &devInfo);
	PrintError("BT_GetRemoteDeviceInfo",dwResult);
	if(dwResult != BTSTATUS_SUCCESS){
		return;
	}
	printf("Device Name:			%s\nDevice class:			%02X %02X %02X\n", 
		devInfo.szName, 
		devInfo.classOfDevice[0],
		devInfo.classOfDevice[1],
		devInfo.classOfDevice[2]);
	if(devInfo.bConnected)
		printf("Device Connection Status:	YES\n");
	else
		printf("Device Connection Status:	NO\n");
	
	if(devInfo.bPaired)
		printf("Device Paired Status:		YES\n");
	else
		printf("Device Paired Status:		NO\n");
	printf("\n");
	printf("Device Clock Offset:		%d\n", devInfo.wClockOffset);
	printf("Device LPM version:		%d\n", devInfo.ucLmpVersion);
	printf("Device Manufacture:		%d\n", devInfo.wManuName);
	printf("Device Sub LMP version:		%d\n", devInfo.wLmpSubversion);
	printf("Device dwDataRecvBytes:		%d\n", devInfo.dwDataRecvBytes);
	printf("Device dwDataSentBytes:		%d\n", devInfo.dwDataSentBytes);
	printf("Device Signal Strength:		%d\n", devInfo.cSignalStrength);
	
}

void SDK_BtSetRemoteInfo()
{
	DWORD dwMask = 0;
	BLUETOOTH_DEVICE_INFO_EX devInfo = {0};
	devInfo.dwSize = sizeof(BLUETOOTH_DEVICE_INFO_EX);
	memcpy(devInfo.address, g_targetBdAddr, 6);
	
	char temp[MAX_PATH];
	//Get Mask
	if(GetPrivateProfileString("SET_REMOTE_DEVICE_INFO", "Mask", NULL, temp, MAX_PATH, g_szIniPath)==0)	{
		printf("Get Mask Failed!\n");
		return;
	}
	if((dwMask = atoi(temp)) == 0){
		printf("Invalid Parameters: 'Mask'\n");
		return;
	}
	//Get Name
	if(GetPrivateProfileString("SET_REMOTE_DEVICE_INFO", "Name", "", devInfo.szName, MAX_DEVICE_NAME_LENGTH, g_szIniPath)==0){
	}
	//Get Device Class
	if(GetPrivateProfileString("SET_REMOTE_DEVICE_INFO", "Device Class", NULL, temp, MAX_PATH, g_szIniPath)==0){
		printf("Get Device Class Failed!\n");
		return;
	}
	if(Help_InputDeviceClass(temp, devInfo.classOfDevice) == BTSTATUS_FAIL){
		printf("Invalid Device Class!\n");
		return;
	}
	
	//Get Clock Offset
	if(GetPrivateProfileString("SET_REMOTE_DEVICE_INFO", "Clock Offset", NULL, temp, MAX_PATH, g_szIniPath)==0)	{
		printf("Get Link Key Failed!\n");
		return;
	}
	devInfo.wClockOffset = atoi(temp);
	
	DWORD dwResult;
	dwResult = BT_SetRemoteDeviceInfo(dwMask, &devInfo);
	PrintError("BT_SetRemoteDeviceInfo",dwResult);
	
}

void SDK_BtGetLocalInfo()
{
	DWORD dwMask = 0;
	BLUETOOTH_DEVICE_INFO_EX devInfo = {0};
	devInfo.dwSize = sizeof(BLUETOOTH_DEVICE_INFO_EX);
	memcpy(devInfo.address, g_targetBdAddr, 6);
	
	char temp[MAX_PATH];
	//Get Mask
	if(GetPrivateProfileString("GET_LOCAL_DEVICE_INFO", "Mask", NULL, temp, MAX_PATH, g_szIniPath)==0){
		printf("Get Mask Failed!\n");
		return;
	}
	if((dwMask = atoi(temp)) == 0){
		printf("Invalid Parameters: 'Mask'\n");
		return;
	}
	memcpy(devInfo.address, g_targetBdAddr, 6);

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美精品日日鲁夜夜添| 亚洲第一会所有码转帖| 一区二区三区视频在线看| 青青草国产成人av片免费| a美女胸又www黄视频久久| 日韩三级精品电影久久久| 日韩毛片高清在线播放| 国产乱国产乱300精品| 欧美日韩电影一区| 亚洲三级在线播放| 国产一区二区免费看| 欧美美女一区二区| 樱桃国产成人精品视频| 国产91精品精华液一区二区三区 | 狠狠色狠狠色合久久伊人| 欧美亚洲国产怡红院影院| 国产日产精品一区| 精品写真视频在线观看| 8v天堂国产在线一区二区| 综合电影一区二区三区 | 国产精品久久久久桃色tv| 久久99最新地址| 日韩视频免费观看高清在线视频| 亚洲一区视频在线观看视频| 97精品久久久久中文字幕| 国产精品午夜电影| 高清久久久久久| 国产日韩欧美激情| 国产盗摄女厕一区二区三区| 久久精品夜色噜噜亚洲a∨| 激情图片小说一区| www激情久久| 久久99久久精品欧美| 精品国产免费人成在线观看| 日本伊人色综合网| 日韩欧美资源站| 极品少妇一区二区| 久久久午夜精品| 成人精品国产一区二区4080| 国产精品国产三级国产aⅴ无密码 国产精品国产三级国产aⅴ原创 | 亚洲国产成人午夜在线一区| 粉嫩高潮美女一区二区三区| 国产精品区一区二区三区| 97久久人人超碰| 亚洲一区二区三区四区在线观看| 在线免费观看日本欧美| 日韩黄色在线观看| 日韩欧美色综合| 国产精华液一区二区三区| 国产精品美女www爽爽爽| 91视视频在线观看入口直接观看www | 美女一区二区三区在线观看| 日韩女优毛片在线| 国产成a人亚洲精品| 亚洲色图视频网| 在线成人高清不卡| 国产高清无密码一区二区三区| 国产精品高清亚洲| 欧美区在线观看| 国产精选一区二区三区| 亚洲乱码国产乱码精品精98午夜| 欧美精品自拍偷拍| 国产成人精品一区二| 亚洲主播在线播放| 欧美刺激午夜性久久久久久久 | 中文字幕中文字幕在线一区| 欧美这里有精品| 国产美女在线精品| 亚洲一区二区欧美日韩| 精品国产三级电影在线观看| 色老汉av一区二区三区| 精品一区二区三区在线播放| 亚洲欧美另类小说| 日韩久久久久久| 一本色道久久综合亚洲91| 麻豆高清免费国产一区| 中文字幕日本乱码精品影院| 91精品国产欧美一区二区| 99精品国产热久久91蜜凸| 日韩电影网1区2区| 樱花草国产18久久久久| 欧美国产禁国产网站cc| 精品剧情在线观看| 制服丝袜激情欧洲亚洲| 94-欧美-setu| 国产成人午夜视频| 麻豆精品久久精品色综合| 亚洲综合偷拍欧美一区色| 欧美精彩视频一区二区三区| 欧美一区二区大片| 欧美猛男超大videosgay| 91在线无精精品入口| 国产麻豆一精品一av一免费| 亚洲第一在线综合网站| 伊人色综合久久天天人手人婷| 国产视频视频一区| 精品国产一区二区三区忘忧草| 欧美绝品在线观看成人午夜影视| 97se亚洲国产综合在线| 成人亚洲精品久久久久软件| 国产一区二区三区免费观看| 免费成人你懂的| 日韩电影在线免费| 亚洲一区二区三区小说| 综合欧美亚洲日本| 中文字幕一区二区三区在线观看| 久久久综合精品| 久久综合九色综合欧美亚洲| 欧美大片在线观看一区二区| 日韩欧美久久一区| 51精品秘密在线观看| 欧美精品久久久久久久多人混战| 欧美性受xxxx黑人xyx性爽| 欧美在线制服丝袜| 欧美日韩国产免费一区二区 | 午夜av一区二区三区| 亚洲一区在线播放| 亚洲成人动漫av| 免费的成人av| 国产自产视频一区二区三区| 国产精品白丝jk黑袜喷水| 国产伦精品一区二区三区视频青涩 | 亚洲精品亚洲人成人网| 亚洲色图一区二区| 亚洲国产色一区| 五月天中文字幕一区二区| 日韩成人一级大片| 免费人成在线不卡| 国产一区二区在线看| 国产精品亚洲视频| voyeur盗摄精品| 色狠狠色狠狠综合| 欧美年轻男男videosbes| 国产亚洲一区字幕| 久久嫩草精品久久久精品一| 国产色一区二区| 国产精品国产三级国产| 亚洲综合一区二区精品导航| 人人狠狠综合久久亚洲| 久久99国产精品免费| 国产精品亚洲а∨天堂免在线| 国产乱色国产精品免费视频| 99久久99久久综合| 欧美日韩日日摸| 26uuu色噜噜精品一区| 最新不卡av在线| 免费精品视频在线| 99re亚洲国产精品| 制服.丝袜.亚洲.中文.综合 | 日韩欧美国产精品| 欧美激情中文字幕| 亚洲一区二区三区四区在线免费观看| 蜜桃精品在线观看| 91视视频在线观看入口直接观看www| 欧美网站一区二区| 国产日产精品1区| 日韩精品一二三| 99久精品国产| 欧美精品一区视频| 亚洲午夜精品17c| 成人夜色视频网站在线观看| 91精品国产福利| 亚洲男女毛片无遮挡| 国产一区二三区好的| 欧美剧在线免费观看网站| 国产精品久久福利| 裸体歌舞表演一区二区| 91啪亚洲精品| 中文字幕欧美日韩一区| 老司机一区二区| 欧美日韩卡一卡二| 中文字幕制服丝袜成人av| 国产一区欧美二区| 欧美一区二区三区电影| 亚洲制服欧美中文字幕中文字幕| 国产成人免费视频精品含羞草妖精| 欧美精品v国产精品v日韩精品| 亚洲欧美激情在线| 福利一区二区在线| 亚洲精品一区二区三区影院 | 亚洲国产sm捆绑调教视频 | 国产成人一区在线| 日韩精品一区二区三区在线| 五月激情综合婷婷| 欧美在线一二三四区| 亚洲精品欧美激情| 99re8在线精品视频免费播放| 国产亚洲欧洲一区高清在线观看| 秋霞午夜av一区二区三区| 欧美日韩卡一卡二| 亚洲无线码一区二区三区| 99精品视频在线观看| 国产精品电影院| www.在线成人| 亚洲三级在线观看| 91热门视频在线观看| 一区二区三区中文字幕在线观看| 97久久超碰精品国产| 日韩伦理电影网| 欧美最猛性xxxxx直播|