使用esp_mesh_get_routing_table获取的路由表,根节点是否永远为第一条路由表?

zxlch_z
Posts: 23
Joined: Thu Aug 19, 2021 2:59 am

使用esp_mesh_get_routing_table获取的路由表,根节点是否永远为第一条路由表?

Postby zxlch_z » Thu Aug 26, 2021 4:59 am

Code: Select all

      esp_mesh_get_routing_table((mesh_addr_t *) &route_table, MESH_MAX_NODE * 6, &route_table_size); 
      for(uint16_t i=1; i<route_table_size, i++) 
      {
        esp_mesh_send(&route_table[i], &_meshssid, MESH_DATA_P2P, NULL, 0);
      }
我需要对所有非根节点的设备发送消息,直接从获取到的第二条路由表为目标开始发送,是否可以直接略过根节点?如果根节点更改为其他设备,路由表第一条是否还是更改后的根节点?

亦或是有没有广播消息到所有非根节点的API?

sioiot
Posts: 8
Joined: Wed Nov 14, 2018 11:17 am

Re: 使用esp_mesh_get_routing_table获取的路由表,根节点是否永远为第一条路由表?

Postby sioiot » Fri Sep 03, 2021 8:20 am

您好:

wifi mesh 中存在预设地址向全部设备广播与非跟节点广播。

根据您的需求 MWIFI_ADDR_BROADCAST 向非根节点设备广播。

#define MWIFI_ADDR_ROOT {0xFF, 0x0, 0x0, 0x1, 0x0, 0x0}
#define MWIFI_ADDR_ANY {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF} /**< All node in the mesh network */
#define MWIFI_ADDR_BROADCAST {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0XFE} /**< Other node except the root */

zxlch_z
Posts: 23
Joined: Thu Aug 19, 2021 2:59 am

Re: 使用esp_mesh_get_routing_table获取的路由表,根节点是否永远为第一条路由表?

Postby zxlch_z » Fri Sep 10, 2021 4:08 pm

非常感谢!

zxlch_z
Posts: 23
Joined: Thu Aug 19, 2021 2:59 am

Re: 使用esp_mesh_get_routing_table获取的路由表,根节点是否永远为第一条路由表?

Postby zxlch_z » Sat Mar 12, 2022 5:35 am

如果我不使用MDF库,如何实现MWIFI_ADDR_BROADCAST的功能呢?

ESP_Sunshine
Posts: 20
Joined: Wed May 19, 2021 12:48 pm

Re: 使用esp_mesh_get_routing_table获取的路由表,根节点是否永远为第一条路由表?

Postby ESP_Sunshine » Mon Mar 14, 2022 2:00 pm

您好,
首先是 通过 esp_mesh_get_routing_table 获取到的路由表,确实第一个就是根节点的mac地址,这个你可以通过遍历的方式打印出来对应的所有mesh节点的mac地址,你就会发现。

如果不使用 mdf 库的话,就需要遍历的方式来实现。mdf库里面也是同样的方式来实现的,只是作了一层封装而已。
详细的可以参看 mdf 库链接:https://github.com/espressif/esp-mdf/bl ... fi.c#L1242

Who is online

Users browsing this forum: No registered users and 6 guests