求解:绑定:(CC2530)zstack 2.5.1a -> Sample -> Simple :为什么协调器(SimpleControllerEB)不能绑定终端 (SimpleSwitchEB)
环境说明:
1:芯片:CC2530,协议栈:zstack 2.5.1a -> Projects -> Sample -> Simple
2:我给Simple的协调器(SimpleControllerEB)和终端(SimpleSwitchEB)都增加了两个端点:一个输入端点,一个输出端点。没有新建新的任务,注册在例程的应用任务上。
3:两个设备下载(SimpleControllerEB)的程序:一个设置为协调器,一个设置为路由。互相绑定后就可以互相控制了,说明新注册的端点是可以用的,绑定程序可用。
现在的问题是:
问1:当一个设备为协调器,一个设备下载(SimpleSwitchEB)程序设置为终端后,终端可以绑定协调器(终端上的按键可以控制协调器的灯),反过来就不可以了。这是为什么?我把终端休眠关了。
问2:跟踪终端的程序:发现终端的ZDO层上(AF_INCOMING_MSG_CMD)根本就没有响应协调器发出来的绑定的请求。感觉是终端屏蔽了到协调器发出来的绑定请求数据。是不是(SimpleSwitchEB)终端就是不能被绑定的?。如果是这样,那我想要一个可以被绑定的终端怎么办?
希望知道的大侠能出手帮帮忙,谢谢了~~
ZDP_MatchDescReq()中
{
......
if ( ((dstAddr->addrMode == AddrBroadcast) || (dstAddr->addrMode == Addr16Bit))
&& (dstAddr->addr.shortAddr == NWK_BROADCAST_SHORTADDR_DEVALL) )
{
//dstAddr->addr.shortAddr = NWK_BROADCAST_SHORTADDR_DEVRXON;
}
if ( nwkAddr == NWK_BROADCAST_SHORTADDR_DEVALL )
{
//nwkAddr = NWK_BROADCAST_SHORTADDR_DEVRXON;
}
......
}
把这两句屏蔽掉,应该可以互相绑定了。