微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI无线射频设计 > Z-Stack报文发送顺序

Z-Stack报文发送顺序

时间:12-22 整理:3721RD 点击:

我在调试Z-CCa530-stack-2.5.1a中switcher和light的Demon程序时,遇到二个问题想请教下各位。

环境:二个1.8.1的EB板,一个作为灯(ZC),一个作为开关(ZED)

代码:灯:projects/zstack/homeautomation/samplelight

    开关:progjects/zstack/homeautomation/sampleswitch

 

为了让开关在发出匹配报文后收到匹配应答报文,在Zcl_samplesw.c匹配代码后加入NwkPollReq(false)函数,以便ZED主动从ZC处取得应答,代码修改如下:

   dstAddr.addrMode = AddrBroadcast;
   dstAddr.addr.shortAddr = NWK_BROADCAST_SHORTADDR;
   ZDP_MatchDescReq( &dstAddr, NWK_BROADCAST_SHORTADDR,
                       ZCL_HA_PROFILE_ID,
                       ZCLSAMPLESW_BINDINGLIST, bindingOutClusters,
                       0, NULL,   // No incoming clusters to bind
                       FALSE );
 
  NwkPollReq(false);

 

  按以上代码逻辑,应该先发送匹配报文,再发送数据请求报文(Data Request),但是我通过USB dongle取到的设备间的传输报文与代码逻辑相反,dongle取到的详细报文见附件。

 

 我的问题有二个:

1)请问造成报文发送先后顺序变化的原因是什么?

2)将NwkPollReq(false)替换为如下代码后,ZED并没有主动、周期地向ZC请求数据报文,请问是设置不对还是有其他什么原因呢?

   dstAddr.addrMode = AddrBroadcast;
   dstAddr.addr.shortAddr = NWK_BROADCAST_SHORTADDR;
   ZDP_MatchDescReq( &dstAddr, NWK_BROADCAST_SHORTADDR,
                       ZCL_HA_PROFILE_ID,
                       ZCLSAMPLESW_BINDINGLIST, bindingOutClusters,
                       0, NULL,   // No incoming clusters to bind
                       FALSE );
 
  char RxOnIdle = TRUE;
      ZMacSetReq( ZMacRxOnIdle, &RxOnIdle );
  NLME_SetPollRate( 1000 );
  NLME_SetQueuedPollRate( 1000 );
  NLME_SetResponseRate( 1000 );

  

有人知道原因吗?

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

网站地图

Top