微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI Zigbee设计交流 > 求解:绑定:(CC2530)zstack 2.5.1a -> Sample -> Simple :为什么协调器(SimpleControllerEB)不能绑定终端 (SimpleSwitchEB)

求解:绑定:(CC2530)zstack 2.5.1a -> Sample -> Simple :为什么协调器(SimpleControllerEB)不能绑定终端 (SimpleSwitchEB)

时间:10-02 整理:3721RD 点击:

环境说明:

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;
}

......

}

把这两句屏蔽掉,应该可以互相绑定了。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top