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

📄 main.cpp

📁 蓝牙驱动代码,实现了蓝牙查找,蓝牙传输的一个程序段,用VC++打开可运行
💻 CPP
字号:
/************************************************************************************
// Sample code for calling IVT BlueSoleil APIs

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

*******************************************************************************************/

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

HANDLE g_hForceExit = NULL;
UCHAR g_targetBdAddr[6]={0};
char g_szIniPath[MAX_PATH] = "BlueSoleilClient.ini";

void ReadGlobalConfig()
{
	
	char szTmp[MAX_PATH]={0};
	GetCurrentDirectory(256, szTmp);
	strcat(szTmp,"\\BlueSoleilClient.ini");
	strcpy(g_szIniPath,szTmp);
	
	if(GetPrivateProfileString("REMOTE_ADDRESS", "Remote Address", NULL, szTmp, 2*DEVICE_ADDRESS_LENGTH+1, g_szIniPath)==0)
	{
		printf("Get Remote Address Failed!\n");
		return;
	}
	if (Help_InputAddr(szTmp, g_targetBdAddr))
	{
		printf("The New Remote 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]);
	}
	
}

BOOL MainInit()
{
	ReadGlobalConfig();

	StartMornitorBsol();

	g_hForceExit = CreateEvent(NULL, FALSE, FALSE, NULL);

	SDK_Init();

	return TRUE;
}
void MainDone()
{
	printf("Waiting for all threads exit...\n");
	SetEvent(g_hForceExit);	

	StopIoOnComport(NULL);

	SDK_Done();
	
    EndMornitorBsol();

	CloseHandle(g_hForceExit);
	g_hForceExit = NULL;
}

void DispatchCmd(int nInput)
{	
	switch (g_nCurrMenu)
	{
	case MENU_STANDBY:
		switch(nInput)
		{
		case 0:
			SDK_BtPair();
			break;
		case 1:
			SDK_BtUnpair();
			break;
		case 2:
			SDK_BtInquiry();
			break;
		case 3:
			SDK_BtBrowseServices();
			break;
		case 4:
			SDK_BtConnectService();
			break;
		case 5:
			SDK_BtDisConnectService();
			break;
		case 6:
			SDK_BtGetRemoteInfo();
			break;
		case 7:
			SDK_BtSetRemoteInfo();
			break;
		case 8:
			SDK_BtGetLocalInfo();
			break;
		case 9:
			SDK_BtSetLocalInfo();
			break;
		case 10:
			ChangeMenu2(MENU_REGISTER);
			break;
		case 11:
			ChangeMenu2(MENU_UNREGISTER);
			break;
		case 12:
			SDK_BtStartSPPExService();
			break;
		case 13:
			SDK_BtStopSPPExService();
			break;
		case 14:
			SDK_BtSearchSPPExServices();
			break;
		case 15:
			SDK_BtConnectSPPExService();
			break;
		case 16:
			SDK_BtDisConnectSPPExService();
			break;
		case 17:
			SDK_StartBluetooth();
			break;
		case 18:
			SDK_StopBluetooth();
			break;
		case 19:
			SDK_CancelInquiry();
			break;
		case 20:
			break;
		case 21:
			break;
		case 22:
			break;
		case 23:
			break;
		case 24:
			break;
		case 25:
			SDK_EnumConnections();
			break;
		case 26:
			ReadGlobalConfig();
			break;
		case 100:
			TS_ConnectRobustness();
			break;
		case 101:
			TS_PanIpAllocation();
			break;
		case 102:
			TS_SDP();
			break;
		}
		break;

		case MENU_REGISTER:
			switch(nInput)
			{
			case -1:
				ChangeMenu2(MENU_STANDBY);
				break;
			default:
				SDK_BtRegisterCallBack(nInput);
				break;
			}
			
			break;

		case MENU_UNREGISTER:
			switch(nInput)
			{
			case -1:
				ChangeMenu2(MENU_STANDBY);
				break;
			default:
				SDK_BtUnRegisterCallBack(nInput);
				break;
			}
			
			break;
		
		default:;
	}

}

int main(int argc, char* argv[])
{
	int nInput;

	ChangeMenu2(MENU_IDLE);
    MainInit();

	while (1) {
		scanf("%d", &nInput);
		if ((g_nCurrMenu== MENU_STANDBY || g_nCurrMenu== MENU_IDLE) && nInput == CMD_QUIT)
			break;
		DispatchCmd(nInput);
		ShowMenu();
	}

	MainDone();

	return 0;
}


⌨️ 快捷键说明

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