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.

调试HA1.2,路由缓存其终端节点的数据,不等待节点的poll,就直接发送数据问题

请问:

在调试HA1.2过程中,终端节点通过一个路由设备加入网络,协调器下发命令读取终端设备的
Attribute,

数据下发到路由,但是不等待终端节点的poll,就直接发送数据,导致数据发送失败

路由缓存数据的时间设置30S,终端节点的poll Rate = 18S

#define NWK_MAX_DATABUFS_TOTAL 12

#define NWK_INDIRECT_MSG_MAX_PER 3

-DNWK_INDIRECT_MSG_TIMEOUT=30

请问还有什么配置?谢谢

路由直接转发,不等待终端节点的poll.rar
  • Z-Stack Home 1.2里面,需要子设备在入网以后告诉父设备自己的poll rate是多少。

    void ZDApp_AnnounceNewAddress( void )
    {
    #if defined ( ZIGBEEPRO )
    // Turn off data request hold
    APSME_HoldDataRequests( 0 );
    #endif

    ZDP_DeviceAnnce( NLME_GetShortAddr(), NLME_GetExtAddr(),
    ZDO_Config_Node_Descriptor.CapabilityFlags, 0 );

    #if defined ( ZIGBEEPRO )
    // Setup the timeout
    APSME_HoldDataRequests( ZDAPP_HOLD_DATA_REQUESTS_TIMEOUT );
    #endif

    if ( ZSTACK_END_DEVICE_BUILD )
    {
    if ( zgChildAgingEnable == TRUE )
    {
    uint8 coordExtAddr[Z_EXTADDR_LEN];

    // Send the message to parent
    NLME_GetCoordExtAddr( coordExtAddr );
    NLME_SendEndDevTimeoutReq( NLME_GetCoordShortAddr(), coordExtAddr,
    zgEndDeviceTimeoutValue,
    zgEndDeviceConfiguration );
    }
    }
    }

    父设备在收到这个消息以后,就会把对该节点的timeout时间修改过来了。

  • 您好,

        目前我的配置中,zgChildAgingEnable = FALSE;

    路由和终端都没有使用该功能。

    终端节点直接通过协调器加入网络,向终端发送数据,在Data Request时,向其发送数据。

  • childAging功能应该是路由或者协调器用于管理自己的关联表,及时删除在Timeoutvalue时间内无数据的终端节点,或者根据linkstatus的丢失值age删除路由节点?