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.

关于终端节点接收数据重复等问题



协议栈版本ZStack-CC2530-2.5.1a

为了实现设备类型(路由、终端)的串口配置转换,做了如下配置修改:

  • 编译选项:BUILD_ALL_DEVICES
  • link->Extra Options:修改为AllDevice-Pro.lib
  • f8wConfig.cfg:-DRFD_RCVC_ALWAYS_ON=TRUE
  • .cfg文件修改为f8wRouter.cfg
  • ZDOInitDevice函数中添加 

zgInitItems( FALSE );
  if( zgDeviceLogicalType == ZG_DEVICETYPE_COORDINATOR )
  {
    zgDeviceLogicalType = ZG_DEVICETYPE_ENDDEVICE;
    osal_nv_write(ZCD_NV_LOGICAL_TYPE,0,sizeof(uint8),&zgDeviceLogicalType);
  }

这样修改后,可以通过MT去配置设备类型

但是当配置成终端时,设备收到的消息会重复4-8次不等;例如ZDO_END_DEVICE_ANNCE_IND消息,会收到连续好多次

调试后发现问题出在

  • link->Extra Options:修改为AllDevice-Pro.lib

当我改回EndDevice-Pro.lib后,就没有问题了

请问,

  1. AllDevice-Pro.lib和EndDevice-Pro.lib是什么东西,在对终端节点的消息处理上有什么不同?
  2. 如果我一定要使用AllDevice-Pro.lib,消息重复的问题要怎么才能比较好的处理掉?