TI中文支持网
TI专业的中文技术问题搜集分享网站

NWK_AUTO_POLL终端设备收不到数据问题(非常着急啊)

我在使用NWK_AUTO_POLL编译选项时碰到个问题,想请教下谁知道这是什么原因呢?谢谢

我在编译选项里面增加了NWK_AUTO_POLL,f8wConfg.cfg里面与NWK_AUTO_POLL相关的宏定义如下,用这样的配置编译出来的程序终端设备收不到协调器发送的广播消息,但是终端设备可以发送广播消息给协调器。我的网络中就一个协调器和一个终端设备。

-DRFD_RCVC_ALWAYS_ON=FALSE

/* The number of milliseconds to wait between data request polls to the coordinator. */
-DPOLL_RATE=1000

/* This is used after receiving a data indication to poll immediately
 * for queued messages…in milliseconds.
 */
-DQUEUED_POLL_RATE=100

/* This is used after receiving a data confirmation to poll immediately
 * for response messages…in milliseconds
 */
-DRESPONSE_POLL_RATE=100

/* This is used as an alternate response poll rate only for rejoin request.
 * This rate is determined by the response time of the parent that the device
 * is trying to join.
 */
-DREJOIN_POLL_RATE=440

VV:

你是一个协调器和一个end device做的实验对吧?

重新下载下一站一个协议栈并安装,不修改任何东西,让协调器周期性广播数据,看终端设备是否有收到。

bx da:

回复 VV:

VV您好,

我现在用的ZStack版本是ZStack-CC2530-2.5.1a,你是让我重新下载一个ZStack-CC2530-2.5.1a版本安装,还是下载最新的ZStack版本呢?我看了官网上最新的协议栈有Z-STACK-HOME:,Z-STACK-LIGHTING和Z-STACK-ENERGY三个版本,我们是要做通用的设备,这三个版本似乎是针对了不同的profile使用的。而且从这三个协议栈的描述上看三个协议栈支持的芯片也有差别,我现在用的芯片是cc2530,cc2531还有功放cc2591。

麻烦您帮忙看下我该使用哪个版本的最合适呢?谢谢。

VV:

回复 bx da:

下载2.5.1a就可以了, 你再测试下,如果还有问题的话,把你对协议栈的配置告诉我,我可以做测试。

bx da:

回复 VV:

VV您好,

官网上的2.5.1a下载链接已经无法下载了,入下面的截图所示。

我把之前的协议栈卸载了,重新安装了一遍之前下载的ZStack-CC2530-2.5.1a.exe,这个安装文件的大小如下图所示,测试发现还是有这样的问题。

我对协议栈的配置如下:

1、编译选项设置NWK_AUTO_POLLHOLD_AUTO_STARTSOFT_STARTNV_RESTORENV_INITBUILD_ALL_DEVICESZTOOL_P1MT_TASKMT_ZDO_FUNCMT_ZDO_MGMTLCD_SUPPORTED=DEBUG

2、f8wConfig.cfg文件都是默认值,没有修改;

3、发送广播消息的代码如下:

    afAddrType_t dstAddr;    dstAddr.addr.shortAddr = 0xffff;    dstAddr.addrMode = (afAddrMode_t)AddrBroadcast;    dstAddr.endPoint = CMODULE_ENDPOINT;        AF_DataRequest(&dstAddr, &epDesc,        BCAST_CLUSTERID,        mallocLen,        pMsgData,        &TransID,        AF_DISCV_ROUTE, AF_DEFAULT_RADIUS);

麻烦您帮忙看下是不是哪里配置的问题?谢谢

VV:

回复 bx da:

协议栈不用协议栈,直接安装的文件名不一样就可以了。

你的dst的endpoint 是不是你的节点的endpoint呢?

bx da:

回复 VV:

您好,

我设置的endpoint是终端设备的endpoint,我把协调器和终端设备的endpoint都定为端口10,广播消息的cluster id都设置为0x2000,这个应该没有问题吧?

我把f8wConfig.cfg里面的-DRFD_RCVC_ALWAYS_ON改为TRUE,终端设备就能收到协调器发送的广播消息了。这是想用NWK_AUTO_POLL这个功能就不行了。

您看我前面贴出来的编译选项是否有问题呢?

VV:

回复 bx da:

当使用NWK_AUTO_POLL以后,把DRFD_RCVC_ALWAYS_ON改为False

然后POLL_RATE=1000

节点是否每隔1s钟在发,data request,

你用抓包看下!

bx da:

回复 VV:

VV您好,

我按照您说的方法把-DRFD_RCVC_ALWAYS_ON=FALSE,-DPOLL_RATE=1000,加入NWK_AUTO_POLL,用packet sniffer抓下来的数据包如附件poll.psd所示。看样子节点没有1s发送data request。抓包数据的整个过程如下:

1、打开packet sniff开始抓包;

2、打开协调器;

3、打开终端设备;

4、通过协调器广播发送了“123”字符数据,发送了三次,终端设备没有收到这三次广播消息;

5、通过终端设备广播发送“321”字符数据,发送了两次,协调器收到了这两次广播消息。

麻烦您帮忙看下是不是终端设备没有发送data request呢?谢谢

VV:

回复 bx da:

你好,

你是2.5.1a的协议栈,有做过什么改动吗?

能否用SmartRF Flash Programer把芯片的Flash擦除下,然后重新烧写程序,把节点的入网过程也用抓下包!

bx da:

回复 VV:

VV您好,

我用的是2.5.1.a这个版本的协议栈,我没有改动协议栈。

按照你说的我把flash擦除了重新烧写程序用抓包工具把协调器组网和终端设备入网的过程也抓包了,抓包文件如附件6.psd。操作步骤如下:

1、擦除协调器和终端设备的flash,重新烧写程序;

2、协调器上电创建网络;

3、终端设备上电加入网络;

4、终端设备发送了3次广播数据“123”,协调器也收到了这3次广播数据;

5、协调器发送了3次广播数据“321”,终端设备没有收到数据;

麻烦您帮忙看下数据包是否正常?为什么NWK_AUTO_POLL就没有作用呢?

再次感谢您之前的回复与帮助。

赞(0)
未经允许不得转载:TI中文支持网 » NWK_AUTO_POLL终端设备收不到数据问题(非常着急啊)
分享到: 更多 (0)