4 posts / 0 new
Last post
zque
Offline
Last seen:3 days 10 hours ago
加入:2020-05-12 02:30
DA14531 怎么随机生成蓝牙名字

怎么实现 随机生成蓝牙名字类型 LS-xxxx LS- 固定前缀 xxxx 随机生成字符串 , 我有尝试着 改app.c 里

app_easy_gap_non_connectable_advertise_start_create_msg

app_easy_gap_undirected_advertise_start_create_msg

两个函数里的 USER_DEVICE_NAME 改成 我自己的变量device_name

uint8_t device_name[8] = {'S','L','-'};
for(int i =0;i<12;i++)
sprintf(&c[i*2],"%02x",device_addr[i]);
c[12]=0;
device_name[3] = c[2];
device_name[4] = c[5];
device_name[5] = c[1];
device_name[6] = c[10];

蓝牙的xxxx随机字符串是我在蓝牙地址里取的,这样就能保证每个设备的蓝牙名字 不一样且固定不变

而获取蓝牙地址的api 我也没找到 又声明了一个全局变量 在app_default_handles.c函数

default_app_generate_unique_static_random_addr

memcpy(device_addr,addr,6);

里把生成的 蓝牙地址 拷贝到 device_addr里面

这样就出现个 问题 我在使用其他的 例程 的时候 编译就会报错,因为我声明了两个全局 变量 device_name 和 device_addr并且在 app_default_handles.c app.c里有调用。

请问有没有,其他的办法实现随机生成 蓝牙名字呀? 或者怎么在不修改 sdk文件的前提下实现上面的功能呀?

Device:
CYibin
Offline
Last seen:2 days 15 hours ago
Staff
加入:2017-12-14 02:48
你好,

你好,

请确认下列几点是否是你的需求:

1. 实现运行过程中,更换蓝牙名字

2. 获取(还是改变?)设备的蓝牙地址

3. 将蓝牙地址(或其他字符)作为蓝牙名字的后缀

Lane
Offline
Last seen:1 week 2 days ago
加入:2015-07-14 14:21
你好,请问如何实时获取蓝牙地址,实现运行过程中

你好,

1.请问如何实时获取蓝牙地址,

2.如何实现运行过程中,更换蓝牙名字?

CYibin
Offline
Last seen:2 days 15 hours ago
Staff
加入:2017-12-14 02:48
你好,

你好,

假设你运行的是蓝牙从机,则:

1. 系统的蓝牙地址保存在 bd_addr 变量中,将其 extern 到你的文件中,读取其地址即可

2. 需要先停掉广播 -> 更改名字 -> 重新广播