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

📄 main.cpp

📁 蓝牙
💻 CPP
字号:
#include <stdio.h>#include <stdlib.h>#include <string.h>#include <unistd.h>#include <sys/types.h>#include <sys/stat.h>#include <fcntl.h>#include <errno.h>#include <pwd.h>#include <signal.h>#include <unistd.h>#include "xlog.h"#include "btrmtdevmgr.h"#include "bthandsfree.h"#include "btsocket.h"#include "scosocket.h"#include "inifile.h"#include "global.h"#include "btcamera.h"extern bool g_bTestUdp;static BTSVCHDL g_spp_svc_hdl = BTSDK_INVALID_HANDLE;BTUINT8 g_serverCom = 0xFF;std::string g_strPeerJjtId;bool StartSppService(){    g_spp_svc_hdl = Btsdk_RegisterSPPService(0);    printf("You have registered a service\n");	g_serverCom = Btsdk_GetServerPort(g_spp_svc_hdl);	printf("serverCom = %d\n", g_serverCom);	if (BTSDK_INVALID_HANDLE == g_spp_svc_hdl)	{		printf("Registered spp service failed\n");		return false;	}	else	{		printf("Register Spp service successful\n");		return true;	}}void StopSppService(){	Btsdk_UnregisterSPPService(g_spp_svc_hdl);	g_serverCom = 0xFF;}// 蓝牙手柄HandsFree g_hfDev;BtSocket g_btSock;ScoSocket g_scoSock;int g_nCamDataPos = 0;void CallbackSPPDataInd(BTUINT16 com, BTUINT8 *data, BTUINT32 len){	if (com == g_hfDev.m_nComSpp)	{		printf("com = %d, len = %lu\n", com, len);		g_hfDev.OnSPPDataInd(com, data, len);	}	else if (com == g_nComCamera)	{		static char buf[50 * 1024] = { 0 };		int& pos = g_nCamDataPos;		// printf("pos = %d, len = %lu\n", pos, len);		int cur_len = len + pos;		memcpy(buf + pos, data, len);		pos += len;		while (cur_len >= IPC_CMD_HEADER_SIZE)		{			char* k = (char*)&((mbox::IPC_CMD_HEADER*)buf)->len;			int data_len;			data_len = *k << 8;			data_len |= *(k + 1);			data_len += IPC_CMD_HEADER_SIZE;			// printf("cur_len = %d, data_len = %d\n", cur_len, data_len);			if (cur_len < data_len)				break;			IpcPacket in(buf, data_len);                        ProcessCamData(in);			// printf("ProcessCamData\n");			cur_len -= data_len;			pos -= data_len;			memmove(buf, buf + len, cur_len);		}	}	else if (com == g_serverCom)	{		printf("---------REG: %d %lu %s\n", com, len, data);	}}/*// This sample demonstrates how to obtain the collection of paired devices.void AppGetConnectedDevices(){	BtSdkRemoteDevicePropertyStru dev_prop = {0};	BTSDKHANDLE hEnumDev = BTSDK_INVALID_HANDLE;	BTDEVHDL hDevFound = BTSDK_INVALID_HANDLE;	printf("AppGetConnectedDevices\n");	hEnumDev = Btsdk_StartEnumRemoteDevice(BTSDK_ERD_FLAG_CONNECTED, 0); // BTSDK_ERD_FLAG_NOLIMIT	if (hEnumDev != BTSDK_INVALID_HANDLE)	{		while ((hDevFound = Btsdk_EnumRemoteDevice(hEnumDev, &dev_prop)) != BTSDK_INVALID_HANDLE)		{			printf("%s   ", (char*)dev_prop.name);			for (int i = BTSDK_BDADDR_LEN - 1; i >= 0; i--)				printf("%02x:", dev_prop.bd_addr[i]);			printf("\n");		}		Btsdk_EndEnumRemoteDevice(hEnumDev);	}	printf("AppGetConnectedDevices exit\n");}*/int main(int argc, char *argv[]){	char exe[128];	sprintf(exe, "%s.log", "bybt");	OpenLogFile(exe);	g_btSock.Create(4001);	g_scoSock.Create(4800);	g_scoSock.SetDestPort(4801);	printf("songyong0\n");	InitBtSdk();	printf("AppGetConnectedDevices exit\n");	RegisterSPPCallback((BTUINT8*)CallbackSPPDataInd);	RmtDevMgr::Init();	g_hfDev.Init();	char mbox_name[128] = "mbox";	FILE* fp = fopen("/jjeto/jjetouuid", "r");	if (fp)	{		char line[40] = { 0 };		const size_t len = fread(line, 1, sizeof(line) - 1, fp);		if (len > 0)		{			line[len - 1] = '\0';			sprintf(mbox_name, "mbox - %s\n", line);			printf("mbox_name: %s", mbox_name);		}	}        Btsdk_SetLocalName((BTUINT8*)mbox_name, strlen(mbox_name));	IniFile ini;	ini.Open("minibox.conf");	g_strPeerJjtId = ini.Read("BYIM", "jjtid", "");	std::string addr = ini.Read("bt", "addr", "");	printf("handsfree addr: %s\n", addr.c_str());	ParseBtAddr(addr.c_str(), g_hfDev.m_DevAddr);	std::string str;	str = ini.Read("bt", "connect_to_handsfree", "1");	bool bHandsfree = atoi(str.c_str());	addr = ini.Read("camera", "dest_addr", "127.0.0.1");	strcpy(g_camDestAddr, addr.c_str());	if (addr != "127.0.0.1")	{		printf("test udp cam data: %s\n", addr.c_str());		g_bCamSend = true;		g_bTestUdp = true;	}	str = ini.Read("camera", "connect_to_camera", "0");	bool bCamera = atoi(str.c_str());	if (!bHandsfree)		g_hfDev.m_bAGConnected = true;	for (int i = 0; i < 10; i++)	{		// AppGetConnectedDevices();		if (!g_hfDev.m_bAGConnected)		{			if (g_hfDev.ConnectAudioServer())			{				printf("g_hfDev.ConnectAudioServer() ok %d", i);				break;			}		}		else			break;	}	// char data[] = { 0x88, 0x7e, 0x00, 0x0e, 0x91, 0x68, 0x04, 0x01, 0x01, 0x12, 0x21, 0x35, 0x55, 0xbc };	// printf("sizeof(data) = %u\n", sizeof(data));	// while (1)	// {	// 	sleep(5);	// 	g_hfDev.SendSppData(data, sizeof(data));	// 	printf("\n");	// }	printf("songyong1\n");	while (1)	{		if (!g_hfDev.m_bAGConnected)			g_hfDev.ConnectAudioServer();		if (bCamera && !g_bCameraConnected)     	        	ConnectToCamera(1);		// 网络摄像头服务器		ConnectToWebCamServer();		sleep(15);	}	CloseLogFile();	RmtDevMgr::Destroy();	DestroyBtSdk();	return 0 ;}

⌨️ 快捷键说明

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