平台:CC2538
协议栈版本:Zstack 3.0.1
过程:
1、发送“ZDP_ActiveEPReq( &addr, dstAddr, 1 );”命令请求目标设备的“端口列表”。
2、收到目标设备的“端口列表”返回,然后请求所有端口的简单描述符:
case Active_EP_rsp:
{
……
for (uint8 i=0; i < pActiveEPs->cnt; i++ ) // 对每个Endpoint进行请求获得 EndPoint上面支持的 In Cluster和 Out Cluster
{
addr.addr.shortAddr = pActiveEPs->nwkAddr;
// 请求端口的简单描述符
ZDP_SimpleDescReq( &addr, pActiveEPs->nwkAddr, pActiveEPs->epList[i], 1 );
}
……
}
3、一共有9个端口,发送了9个简单描述符请求命令,通过抓包发现只发出去了6个简单描述符请求,还有3个没有发送出去。
问题:
为什么只能发出去6个简单描述符请求?是因为缓存问题吗?如果是的话在哪里扩大缓存大小?
望解答,谢谢!
YiKai Chen:
你用一個迴圈持續呼叫ZDP_SimpleDescReq是不行的、試試用timer event 分開呼叫ZDP_SimpleDescReq
Jesse Huang:
回复 YiKai Chen:
实在不行我再考虑这么做,谢谢解答!
Susan Yang:
不建议在循环内调用ZDP_SimpleDescReq
Jesse Huang:
回复 Susan Yang:
非常感谢您的解答,我现在是用timer event分开调用ZDP_SimpleDescReq了,除此之外还有别的可行的办法吗?
YiKai Chen:
回复 Jesse Huang:
據我所知,沒有其他可行的办法