TLSR_8258开发之路:①蓝牙中文扫描响应包的设置方法

蓝牙中文扫描响应包的设置方法

本文介绍基于telink_sig_mesh_sdk_v3.2.1的mesh_8258工程的蓝牙中文扫描响应包的设置方法

准备工作

需要做如下准备工作:

  1. 开发工具:泰凌微8258_dongle开发板
    在这里插入图片描述
  2. 泰凌微sig_mesh_sdk,下载链接
  3. 手机app:nordic公司的nRF_Connect,用于发现附近的蓝牙设备和查看广播包,下载链接

修改程序

1.修改广播响应包结构体
找到mesh_common.h中的mesh_scan_rsp_t结构体,改为

typedef struct{
	u8 len;
	u8 type;            // 0xFF: manufacture data
	// u8 mac_adr[6];
	// u16 adr_primary;
    // u8 rsv_telink[10];  // not for user
    u8 rsv_user[12];
}mesh_scan_rsp_t;

2.修改mesh_common.c中的void mesh_scan_rsp_init()函数,改为

void mesh_scan_rsp_init()
{
	//%e4%bd%a0%e5%a5%bd%e4%b8%96%e7%95%8c
	u8 name_w [12]={0xe4,0xbd,0xa0,0xe5,0xa5,0xbd,0xe4,0xb8,0x96,0xe7,0x95,0x8c};
	mesh_scan_rsp_t tbl_scanRsp={0};
	//tbl_scanRsp.adr_primary = ele_adr_primary;
	memcpy(tbl_scanRsp.rsv_user, name_w, sizeof(name_w));
	// foreach(i,sizeof(tbl_scanRsp.rsv_user)){
	// 	tbl_scanRsp.rsv_user[i] = '你'+ i;
	// }
	
	tbl_scanRsp.type = GAP_ADTYPE_LOCAL_NAME_COMPLETE;	// manufacture data
	tbl_scanRsp.len = sizeof(mesh_scan_rsp_t) - 1;
	u8 rsp_len = tbl_scanRsp.len+1;
	#if(AIS_ENABLE)
	rsp_len = ais_pri_data_set(&tbl_scanRsp.len);	
	#endif
	bls_ll_setScanRspData((u8 *)&tbl_scanRsp, rsp_len);
}

查看改好的广播响应包

1.编译,下载,设备重启,打开手机的nRF Connect软件,可看到改好的中文名为“你好世界”,告诉这个世界你来了。

2.查看原始数据,可以看到类型为09的完整本地名称

中文url编码

很多小伙伴好奇,为什么这个12个16进制的数可以表示“你好世界”。其实是通过url编码得来的,通过在线url编码工具,可以生成一串这样的编码%e4%bd%a0%e5%a5%bd%e4%b8%96%e7%95%8c,把“%”改成“,”
,在加上0x表示16进制,就可以了。
通过上图可以看到,len 为13,也就是广播响应包的长度;type为0x09,也就是GAP_ADTYPE_LOCAL_NAME_COMPLETE这个结构体的定义,表示完整的蓝牙本地名称;value值是e4bda0e5a5bde4b896e7958c,这个就是中文广播包的名称,也就是下面这个数组。

//%e4%bd%a0%e5%a5%bd%e4%b8%96%e7%95%8c
u8 name_w [12]={0xe4,0xbd,0xa0,0xe5,0xa5,
0xbd,0xe4,0xb8,0x96,0xe7,0x95,0x8c};
  • 9
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值