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

z-stack-home 1.21 child aging如何使用?

在论坛里找到VV大神 给  http://www.deyisupport.com/question_answer/wireless_connectivity/zigbee/f/104/p/85924/236687.aspx#236687 回复的 home1.22的 但是里面有些东西 在 home1.21 里并没有, @VV  求大神讲解下  在home1.21 如何实用child aging!

VV:

Z-Stack Home 1.2.1 和 Z-Stack Home 1.2.2

对Child Aging功能的实现原理是一样的。

只不过Z-Stack Home 1.2.1里面,父设备对于end device来说,他的timeout时间是在父设备上实现固定的。

// Child table Management timeout valuesCONST uint16 gKEEPALIVE_TIMEOUT_MAX = KEEPALIVE_TIMEOUT_MAX;CONST uint16 gTIMEOUT_COUNTER_MAX = TIMEOUT_COUNTER_MAX;

以上两个变量主要用来判断,end device连续多久没有poll 了,然后就删除它。

其实这种做法是不合适的,因为用户在开发产品的时候,不是所有的产品poll rate都是一样的。比方说对于门磁 poll rate可能是0,对于door lock可能是10000.

那么poll rate不同,父设备对于子设备的统计方式也不一样了。

这也是为什么Z-Stack Home 1.2.2里面,需要子设备在入网以后告诉父设备自己的poll rate是多少。

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

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

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

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

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

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

void NLME_ProcessEndDevTimeoutReq( NLDE_FrameFormat_t *ff )

heng ma1:

回复 VV:

关于这个timeout的时间,  1.21 默认是60  也就是61分钟, 最小设置1,  是两分钟,   那能不是设置更小的值?

赞(0)
未经允许不得转载:TI中文支持网 » z-stack-home 1.21 child aging如何使用?
分享到: 更多 (0)