• SIG MESH 问答
  • 请问nRF5-SDK-for-Mesh中怎么修改Mesh PB-ADV的广播地址

如题。
使用sd_ble_gap_addr_set能改变GATT的广播地址,但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

              撰写回复...