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.

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

Other Parts Discussed in Thread: CC2530

环境说明:

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

    ......

    }

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