This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

AssociatedDevList相关咨询

1.AssociatedDevList 里的timeoutCounter一直在减,终端POLL的时候会恢复原来值,

如果终端一直不poll,减到零之后会怎样?

2.我这边是一个协调器,多个终端,星型拓扑,没有路由,大约三四十个终端(都一直不睡眠),

如果终端POLL的太频繁,会造成网络拥堵,所有建议终端多久POLL一次比较好?

3.假如终端断电了,协调器端timeoutCounter会减到0,此时是不是就把该终端踢了?如果终端又上电了还能连得上吗?

4.如果把协调器端的timeoutCounter初始值改小,终端上是不是也要改?能不能改到100左右?

5.为什么改到100,之前测试过,终端加入协调器,路由也加入协调器,此时把协调器关了,终端会加入路由,

此时再把协调器上电,发现协调器控不了终端了,把路由再关了才行,之前有恢复说是timeoutCounter没有到0,所以不能控制终端

  • 1. 减到零之后终端会從association list移除
    2. 60秒
    3. 是的,协调器端会把该终端踢了;终端又上电了还是能回连得上
    4. 可以,终端不用改
    5. 應該是路徑還沒重建好,mesh的路徑需要些時間才會恢復
  • 1、timecounter等于0了,就会把节点的信息放入一个NotmyChild的list里面。

    // Not My Child structure
    typedef struct
    {
    uint16 shortAddr;
    uint16 timeoutCounter;
    } nwkNotMyChild_t;

    然后定期的去更新这个变量,如果这个时候收到data req,就会把节点信息从NotmyChildlist重新移到你Associate list里面去。

    如果在NotmyChildList里面的counter的时候,那么就把这个节点彻底删除了NwkNotMyChildSendLeave
    2、根据应用选择,可以定义变量的最大值
    3、可以rejoin
    4&5、timeoutCounter的值可以由节点自己定义,然后通过device announce发送给协调器
  • 1.针对问题5,我的测试等了很久都不行,把路由断电了就好了,把timeoutCounter改小是不是会好点?
    2.有的时候把终端直接断电,然后重新刷固件,此时发现该终端入了原来的协调器就被踢了,
    BDB_DEFAULT_TC_REQUIRE_KEY_EXCHANGE已改为FALSE还是不行,怀疑是不是timeoutCounter没有减到零,
    协调器还认为该终端还在,所有再加进来就会被拒?有没有什么办法可以解决该问题?把timeoutCounter改小是否可以?多小比较合适?
    3.timeoutCounter协调器端没有初始值?这个参数是终端发给协调器的?所以要设置是不是只要设置终端上的timeoutCounter即可?
  • 建議抓包看是什麼問題
  • 之前问过你,你的回复是“终端会加入路由,再把协调器上电,此时协调器並不知道终端加入路由所以要等到协调器child age掉终端後协调器才能透過路由发数据给终端”
    请问怎么解决终端重新刷固件后加入协调器被踢的问题,把END_DEV_TIMEOUT_VALUE改小?该多少合适?
  • 终端重新刷固件后,你必須要使能permit join讓终端重新加網
  • permit join肯定使能了,现在的情况是能加进去,只是十几秒后就被踢了,双方BDB_DEFAULT_TC_REQUIRE_KEY_EXCHANGE已改为FALSE,
    现在想的是把END_DEV_TIMEOUT_VALUE改小是否能解决问题?按照你之前的回复是“终端会加入路由,再把协调器上电,此时协调器並不知道终端加入路由所以要等到协调器child age掉终端後协调器才能透過路由发数据给终端”
  • 没有,这一页全部要修改一遍?