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.

关于ZigBee组网问题

您好,1.2.2a版本协议栈,2650的官方例程是用绑定模式组网,我改成了单播模式,

zswDstAddr.addrMode = (afAddrMode_t)Addr16Bit;
zswDstAddr.addr.shortAddr = 0X0000;
zswDstAddr.endpoint = 8;
zswDstAddr.panID = 0;

其中2650作为终端,2530作为协调器(组网模式为广播),为何我重新再其他的2530板子上重新烧录程序运行之后,2650无法组网,需要将2650的协议栈程序擦除重新烧录之后才可以组网?

  • 很抱歉,有些不太理解您的意思。"重新再其他的2530板子上重新烧录程序"具体是指什么?您现在使用的是哪个例程?

  • 感谢关注,我的情况是,同样的终端2650不变,换了一个协调器(程序不变),此时终端就没法组网了,是不是被绑定的原因?

    还有一个问题,我的发送函数是:

    zcl_SendCommand( SWITCH_EP, &dstAddr,
    ZCL_CLUSTER_ID_GEN_ON_OFF, 0x01, TRUE, ZCL_FRAME_CLIENT_SERVER_DIR,
    false, 0, 0, 4, SendData );

    这个发送函数需要配置目的终端节点端点号SWITCH_EP,那么是不是只能支持单播情况,而我协调器是想做广播,想问一下应该用哪个发送函数?非常感谢

  • susan 你好。我有个问题想麻烦您一下,我是用的ZHA 1.2.2a协议的zcl_samplesw协调器,zclSampleLight做终端,用绑定模式可以正常用zclGeneral_SendOnOff_CmdToggle(SAMPLESW_ENDPOINT, &zclSampleSw_DstAddr, FALSE, 0 )控制,现在我把绑定模式改为广播模式, zclSampleSw_DstAddr.addrMode = (afAddrMode_t)AddrBroadcast;//(afAddrMode_t)AddrNotPresent;//
      zclSampleSw_DstAddr.endPoint = 0;
      zclSampleSw_DstAddr.addr.shortAddr =0xFFFF;//广播时填0xffff // 0;,然后无法控制zclGeneral_SendOnOff_CmdToggle,请问还需要相应改动哪里呢?谢谢

  • zclSampleSw_DstAddr.endPoint應該要設定成zclSampleLight的endpoint
  • 谢谢您的回复啊,这样我还有一个疑问,那这么设置以后,广播的方式,如果协调器下面加入了多个zclSampleLight的终端设备,那zclGeneral_SendOnOff_CmdToggle这条控制命令要怎么区分控制呢,终端设备里面通过哪种方式来识别呢,还请帮忙指点一下 啊谢谢
  • 那就得要用組播
  • 嗯嗯好的,谢谢chen,我还有最后一个疑问,就是组网是协调器按键调用NLME_PermitJoiningRequest(60);进入允许加网,那终端是用哪几个函数来加入此网络呢,是ZDOInitDevice( 0 );?终端入网过程中,协调器的回应都是Zstack底层自动完成的吧?谢谢啊

  • 终端可以呼叫ZDOInitDevice( 0 )來啟動加入此网络,终端入网过程中,协调器的回应都是Zstack底层自动完成的
  • 嗯嗯好的 谢谢