本文介绍基于telink_sig_mesh_sdk_v3.2.1的mesh_8258工程的蓝牙中文扫描响应包的设置方法 需要做如下准备工作: 1.修改广播响应包结构体 2.修改mesh_common.c中的void mesh_scan_rsp_init()函数,改为 1.编译,下载,设备重启,打开手机的nRF Connect软件,可看到改好的中文名为“你好世界”,告诉这个世界你来了。 很多小伙伴好奇,为什么这个12个16进制的数可以表示“你好世界”。其实是通过url编码得来的,通过在线url编码工具,可以生成一串这样的编码%e4%bd%a0%e5%a5%bd%e4%b8%96%e7%95%8c,把“%”改成“,”TLSR_8258开发之路:①蓝牙中文扫描响应包的设置方法
蓝牙中文扫描响应包的设置方法
准备工作
修改程序
找到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;
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); }
查看改好的广播响应包
2.查看原始数据,可以看到类型为09的完整本地名称
中文url编码
,在加上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};
本网页所有视频内容由 imoviebox边看边下-网页视频下载, iurlBox网页地址收藏管理器 下载并得到。
ImovieBox网页视频下载器 下载地址: ImovieBox网页视频下载器-最新版本下载
本文章由: imapbox邮箱云存储,邮箱网盘,ImageBox 图片批量下载器,网页图片批量下载专家,网页图片批量下载器,获取到文章图片,imoviebox网页视频批量下载器,下载视频内容,为您提供.
阅读和此文章类似的: 全球云计算