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.
在仔细研读了大神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来延长掉线的时间,不能完全禁止掉线,还请各位支支招,谢过。
多说几句,近来发现论坛越来越活跃了,这跟管理员们的积极维护是分不开的,希望论坛越办越好,讨论气氛越来越浓!