如题。
使用sd_ble_gap_addr_set能改变GATT的广播地址,但PB-ADV的广播地址还是没变。
谢谢!
请问nRF5-SDK-for-Mesh中怎么修改Mesh PB-ADV的广播地址
windj 你好,你是不是理解错了?这个跟承载有什么关系呢?你能提供更多的信息吗?
Wireless-Tech
在nRF5-SDK-for-Mesh例程比如light_switch -> server中开启了代理的,也就是使用了两种承载,而默认地址使用了NRF_FICR->DEVICEADDR。现在我想改下地址,抓包看了PB-GATT的使用sd_ble_gap_addr_set能改,但PB-ADV还是不变。现在问了官方论坛的说是使用advertiser.c -> advertiser_address_set()来更改,但还没搞懂具体怎么用。
这个是我改PB-GATT方式的地址的代码:
`static void initialize(void)
{
//...
ble_stack_init();
ble_gap_addr_t my_addr;
uint32_t err_code;
err_code = sd_ble_gap_addr_get(&my_addr);
APP_ERROR_CHECK(err_code);
my_addr.addr[5] = 0x00;
my_addr.addr[4] = 0xEE;
my_addr.addr[3] = 0xDD;
my_addr.addr[2] = 0xCC;
my_addr.addr[1] = 0xBB;
my_addr.addr[0] = 0xAA;
my_addr.addr_type = BLE_GAP_ADDR_TYPE_PUBLIC;
err_code = sd_ble_gap_addr_set(&my_addr);
APP_ERROR_CHECK(err_code);
//...
mesh_init();
}`
原文:
The mesh stack doesn't use the softdevice for advertising bearer. To set the address for Bluetooth Mesh adv packet you should use advertiser_address_set() . It's the function inside advertiser.c
windj 这里它不是说的很明白了吗,用adveraddressset函数
5 年后
1