调试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
请问还有什么配置?谢谢
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删除路由节点?