完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
根节点是指定的,并且连接到外部路由器。然后所有的子节点使用了esp_mesh_fix_root(true);放弃投票。
现在出现一个问题:在正常路由器,根节点,子节点都连接的情况下,路由器和根节点同时断电,路由器开机后改变信道,再给根节点上电。这个时候子节点和根节点无法连接了。 如果路由器信道不改变,一切正常。 如果子节点未上电,根节点切换信道,子节点上电,也能正常连接。 观察event发现,子节点在未连接根节点的时候,会查找所有信道,查找到后会有一个MESH_EVENT_FIND_NETWORK。 或者如果在mesh连接中改变信道,会有MESH_EVENT_CHANNEL_SWITCH。 但如果mesh失去连接,根节点切换信道后,子节点就不再扫描所有信道了。 不知道问题描述清楚没有,这个问题应该如何去解决? 注:使用的是ESP-WIFI-MESH,非MDF |
|
相关推荐
1个回答
|
|
在ESP-WIFI-MESH网络中,子节点在连接根节点后,如果根节点重启并改变信道,子节点可能无法重新组网。这是因为子节点在连接过程中可能已经记录了根节点的信道信息,当信道发生变化时,子节点无法自动适应新的信道。
为了解决这个问题,可以采取以下几种方法: 1. **信道同步**:在根节点重启之前,可以通过某种机制通知所有子节点即将发生的信道变化。这样,子节点可以在根节点重启之前或之后立即切换到新的信道。 2. **动态信道检测**:子节点可以定期检测信道变化。如果发现根节点的信道发生变化,子节点可以自动切换到新的信道。这可以通过监听MESH_EVENT_CHANNEL_CHANGE事件来实现。 3. **使用固定信道**:如果可能,可以设置根节点和所有子节点使用固定的信道。这样,即使根节点重启,信道也不会发生变化,从而避免了子节点无法连接的问题。 4. **信道扫描**:如果子节点无法连接到根节点,可以尝试让子节点进行信道扫描,以找到根节点当前所在的信道。这可以通过设置子节点在连接失败后自动进行信道扫描来实现。 5. **重新初始化MESH网络**:在根节点重启并改变信道后,可以重新初始化整个MESH网络。这将导致所有子节点重新加入网络,并自动适应新的信道。 6. **使用外部控制机制**:如果根节点和子节点的信道变化是由外部因素(如路由器)引起的,可以考虑使用外部控制机制来同步信道信息。例如,可以通过智能家居系统或其他网络设备来控制信道变化,并通知所有子节点。 7. **优化MESH_EVENT_FIND_NETWORK事件处理**:在子节点收到MESH_EVENT_FIND_NETWORK事件后,可以优化事件处理逻辑,使其能够更灵活地处理信道变化。例如,可以设置子节点在收到此事件后,尝试连接到所有可能的信道,直到找到根节点为止。 8. **使用MESH_EVENT_CHANNEL_CHANGE事件**:如果MESH连接中发生了信道变化,可以通过监听MESH_EVENT_CHANNEL_CHANGE事件来通知子节点进行信道切换。这样,子节点可以在信道变化时立即适应新的信道。 总之,解决ESP-WIFI-MESH子节点在根节点重启后无法重新组网的问题,需要综合考虑信道同步、动态信道检测、固定信道使用、信道扫描、重新初始化MESH网络、外部控制机制、优化事件处理和使用特定事件等多种方法。根据具体应用场景和需求,可以选择一种或多种方法来实现。 |
|
|
|
只有小组成员才能发言,加入小组>>
1078 浏览 1 评论
568浏览 6评论
475浏览 5评论
有没有办法在不使用混杂模式的情况下实现Wifi驱动程序接收缓冲区访问中断呢?
458浏览 5评论
459浏览 4评论
430浏览 4评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-12 17:18 , Processed in 0.773977 second(s), Total 81, Slave 65 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号