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

节点只发送5次beacon request请求

我使用的协议栈版本为ZStack-CC2530-2.5.1a,编译选项为coordinatorEB,在这个基础上加入将设备配置为终端节点的功能。

此时一个模块烧录协调器原版的协调器程序,另一个模块烧录基于coordinatorEB修改的节点的程序,先为协调器上电,再为节点上电,能够正常入网和通信。

但是发现一个BUG,即若协调器不上电,仅为终端上电,终端只发送5次beacon request请求后,就自动将状态切换为DEV_END_DEVICE,且此时并未入网(而不是终端入网才切换状态为DEV_END_DEVICE),请问这个异常现象可能是由于什么引起的呢?

ALVIN:

有抓包文件吗? 你设置为终端节点之前有没有clear NV数据

Viki Shi:

请提供抓包文件帮助判断

YiKai Chen:

應該是加入到別的開放網路去了,建議抓包看看是什麼狀況

Xinxin:

回复 ALVIN:

抓包出来显示的只有5个beacon request帧,如下图所示:

请问您所说的clear NV是调用哪个API呢?目的是什么呢?我在烧录程序前会通过flash programmer erase flash。才接触ZigBee,感谢指教!

YiKai Chen:

回复 Xinxin:

你只有抓包channel 13,另外15個channel也要抓包看看,因為你的狀況應該是設備加到其他開放網路去了

Xinxin:

回复 YiKai Chen:

您好,我这边是抓包后得出的结论,可以看我回复给ALVIN的抓包图片,仅仅抓到5包beacon request后,过3~5S左右状态就切换为DEV_END_DEVICE。我这边怀疑是代码内有什么地方没有将coordinatorEB编译选项的工程完全修改为enddevice。

基于coordinatorEB将代码修改为enddevice的全部流程如下:

1. 定义BUILD_ALL_DEVICES

2. 链接库改为AllDevice-Pro.lib

3.在main函数的osal_nv_init( NULL )后面加入 zgDeviceLogicalType = ZG_DEVICETYPE_ENDDEVICE,将设备类型修改为enddevice;

4. 将ZSTACK_DEVICE_BUILD为#define ZSTACK_DEVICE_BUILD  (DEVICE_BUILD_COORDINATOR | DEVICE_BUILD_ROUTER | DEVICE_BUILD_ENDDEVICE)

5. 将SampleApp_Init()中的这两句代码注释:

请问上述的修改还有哪些遗漏的吗?感谢您的指教!

Xinxin:

回复 Viki Shi:

您好,抓包图片见我给ALVIN的回复,请您帮忙分析下呢

Xinxin:

回复 Viki Shi:

您好,抓包图片见我给ALVIN的回复,请您帮忙分析下呢

YiKai Chen:

回复 Xinxin:

如果用enddevice原始例程不修改會看到這個問題嗎?

Xinxin:

回复 YiKai Chen:

我只抓了13信道的原因是我定义的信道为-DDEFAULT_CHANLIST=0x00002000// 13 – 0x0D

赞(0)
未经允许不得转载:TI中文支持网 » 节点只发送5次beacon request请求
分享到: 更多 (0)