我正在尝试建立一个没有路由器的 WiFi MESH 网络(根节点将通过板载 4G 传输信息),我正在使用 ESP-IDF 来支持链式拓扑。
我已经成功地使网格连接良好,节点被识别并且根是根据外部标准设置的(目前只是 GPIO 上的一条带)。
但是,无论我做什么,似乎都没有在任何设备上收到我的消息。
我的代码的相关部分是:
Mesh init(所有路由器设置都被注释掉):
代码:
mesh_cfg_t cfg = MESH_INIT_CONFIG_DEFAULT();
/* mesh ID */
memcpy((uint8_t *) &cfg.mesh_id, MESH_ID, 6);
/* router */
//cfg.channel = CONFIG_MESH_CHANNEL;
//cfg.router.ssid_len = strlen(CONFIG_MESH_ROUTER_SSID);
//memcpy((uint8_t *) &cfg.router.ssid, CONFIG_MESH_ROUTER_SSID, cfg.router.ssid_len);
//memcpy((uint8_t *) &cfg.router.password, CONFIG_MESH_ROUTER_PASSWD,
//strlen(CONFIG_MESH_ROUTER_PASSWD));*/
/* mesh softAP */
ESP_ERROR_CHECK(esp_mesh_set_ap_authmode(CONFIG_MESH_AP_AUTHMODE));
cfg.mesh_ap.max_connec
tion = CONFIG_MESH_AP_CONNECTIONS;
memcpy((uint8_t *) &cfg.mesh_ap.password, CONFIG_MESH_AP_PASSWD,
strlen(CONFIG_MESH_AP_PASSWD));
ESP_ERROR_CHECK(esp_mesh_set_config(&cfg));
这将返回“网格:[MANUAL]指定为 root 且未设置路由器”。
我的 mesh_send 命令如下所示:
代码:
//node send to root
err = esp_mesh_send(NULL, &data, MESH_DATA_P2P, NULL, 0);
//root send to nodes
for (i = 0; i < route_table_size; i++) {
err = esp_mesh_send(&route_table
, &data, MESH_DATA_P2P, NULL, 0);
}
当连接路由器时,这一切都工作得很好,但当我没有连接路由器时,这一切都不起作用。