Hello world,
我在100个节点的源路由测试中,发现某个源路由项出现错误, rtgSrcTable[MAX_RTG_SRC_ENTRIES]中,我想要重置这个出现问题的表项,但不知道官方有什么API可以操作?
Winter Two:
UP
VV:
回复 Winter Two:
没有这样的API
最多手动初始化
rtgSrcTable[idx].dstAddress = INVALID_NODE_ADDR; rtgSrcTable[idx].relayCount = 0; rtgSrcTable[idx].relayList = NULL; rtgSrcTable[idx].expiryTime = 0;
Winter Two:
回复 VV:
谢谢VV,这个方式还是有效果的。
另外想请问下ZDO_ManytoOneFailureIndicationCB有发起MTO请求,2.5.1版本协议栈升级后每次MTO失败回调就发送MTO请求,这样是否会太频繁?
实际100个节点测试中经常收到这个失败的回调,因此我担心MTO请求过于频繁,会加重网络负担。
Winter Two:
回复 VV:
挂机了一下午,发现现在没有可用内存了,AF发数据,AF_DATA_CONFIRM_CMD返回0x1A(MAC_NO_RESOURCES),以及有的直接返回0x10(afStatus_MEM_FAIL)。
怀疑是不是relayList这边内存没释放,想问下这个链表指针是动态申请的吗?我用osal_mem_free(rtgSrcTable[i].relayList);一调用就出问题。
relayList直接赋值NULL,会不会有问题?
VV:
回复 Winter Two:
不会一直发送,在收到MTO failure以后,会调用MTO req , 在这个函数里面有做逻辑的。你可以测试下!
Winter Two:
回复 VV:
谢谢VV,关于relaylist的指针确实是我大意了,对于全局指针在释放后没有置为NULL,现在已经改正。
关于MTO REQ还想确认下,比如100ms以内收到两次MTO failure,是否会发两次MTO req?
Winter Two:
回复 VV:
多谢VV,这下全理顺啦^_^