TI中文支持网
TI专业的中文技术问题搜集分享网站

请问:CC2530-2.5.1a 终端是否可以关闭MAC ACK REQUEST?

       在仔细研读了大神VV的帖子《TI ZigBee协议栈中终端设备的状态切换详解》后,我发现End Device真正掉线的原因在于“连续发送数据没有收到父设备的MAC ACK,则触发设备进入孤立设备状态”。

       从sniffer上我们也可以看到,无论是单播还是广播,End Device发出的数据帧里Ack.req标志位始终是置位的,那么父节点必然要回复MAC ACK。

       由于在实际应用当中遇到以下情景:End Device是低功耗设备,周期性的唤醒上报数据,当多次没有收到父节点的MAC ACK后就会变成孤节点从而发送Orphan Notification等步骤。

       但我们并不希望End Device掉线,因为场景中网络状态是固定不变的,没有收到MAC ACK仅仅是因为End Device离远了,我们只希望End Device不管网络状态继续发送数据,如同一个单向信标。

       之所以要这样做是因为实际场景中End Device每天都会全部远离网络进入掉线状态,而第二天固定时刻会同时再进入网络,此时如果都进行入网操作网关压力会非常大,数据极易丢失。

       目前仅能通过设置MAX_POLL_FAILURE_RETRIES来延长掉线的时间,不能完全禁止掉线,还请各位支支招,谢过。

       多说几句,近来发现论坛越来越活跃了,这跟管理员们的积极维护是分不开的,希望论坛越办越好,讨论气氛越来越浓!

VV:

这个没办法改,你可以做的节点在断线以后,把搜网的频率减小,间隔加大。

比方说你可以按照10s,30s,2min,这样逐步增加的方式去搜网,如果应用层有触发的,比方说应用程序发送时,可以立即开启搜网。

你可以参考z-stack home 1.2.2a里面关于ZDO_REJOIN_BACKOFF的实现就可以了

lemon:

MAX_POLL_FAILURE_RETRIES 我把它改成255了

赞(0)
未经允许不得转载:TI中文支持网 » 请问:CC2530-2.5.1a 终端是否可以关闭MAC ACK REQUEST?
分享到: 更多 (0)