打印

通过修改协调器的信道,来修改路由和终端信道

[复制链接]
1425|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
cl234583745|  楼主 | 2015-12-15 19:46 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
通过串口来修改协调器的信道,从而去修改网络中所有设备的信道,包括路由和终端。
现在问题是:协调器修改信道成功后,所有终端都能随之切换信道并加入网络。
1。但网络中有路由时候,协调器切换信道后,路由和终端就不能随其切换信道,还在原来的信道中。是不是路由器维持了原来的网络导致终端不能切换信道了?
2。没有路由时候,协调器切换信道后,终端能随之切换并加入网络,是不是终端重新寻找网络的结果,而不是协调器吧修改的信道值通知了终端?

若要是想通过协调器修改信道后,其网络中的所有设备都随之修改信道并加入网络,该怎么弄呢?



修改信道是下面代码吗?好像没有通知其他设备啊

//  Components\stack\zdo\ZDNwkMgr.c

if ( events & ZDNWKMGR_CHANNEL_CHANGE_EVT )

{      

  // Switch channel

  _NIB.nwkLogicalChannel = ZDNwkMgr_NewChannel;

  ZMacSetReq( ZMacChannel, &ZDNwkMgr_NewChannel );



  // Our Channel has been changed -- notify to save info into NV

  ZDApp_NwkStateUpdateCB();

  // Reset the total transmit count and the transmit failure counters

  _NIB.nwkTotalTransmissions = 0;

  nwkTransmissionFailures( TRUE );

  return ( events ^ ZDNWKMGR_CHANNEL_CHANGE_EVT );

}


相关帖子

沙发
dirtwillfly| | 2015-12-15 20:31 | 只看该作者
没这样玩过,帮顶顶

使用特权

评论回复
板凳
baimiaocun2015| | 2015-12-15 22:37 | 只看该作者
这个没怎用过的,跟着大家讨论的。

使用特权

评论回复
地板
cl234583745|  楼主 | 2015-12-16 11:06 | 只看该作者
dirtwillfly 发表于 2015-12-15 20:31
没这样玩过,帮顶顶

这是很普通的功能啊。我百度看有人都是协调器在收到串口修改信道指令后,发出广播,所有设备接收到广播后自己切换信道的。
ZDNWKMGR_CHANNEL_CHANGE_EVT是协议栈自带的。这个事件不能实现吗?失去父节点后,终端重新找网络。而路由维持网络。路由维持网络的代码在哪里呢?能不能让他也重新加入而不是维持呢?我测试路由执行软件重启,但路由还是在原来的信道,而不是重新来

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

99

主题

644

帖子

1

粉丝