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

终端位置变化后,从发出孤立广播到开始重新关联耗时约5s,能否调整协议栈加快重新关联操作

如题,采用MESH协议,终端从一个路由器旁移动到另一个路由器旁时,发送数据,因发送失败进入孤立状态,发出孤立广播,发出后约5s才开始请求beacon进行重新关联的操作,能否修改协议栈参数降低这5s的等待时间。

lihua li1:

通过修改DEXTENDED_JOINING_RANDOM_MASK、DBEACON_REQ_DELAY_MASK参数已经加快重连速度。

VV:

你好,首先你要知道节点变成孤立节点以后,状态是怎么样变化,协议栈处理的流程是什么,这样可以去看能不能改动。

当节点跟父设备断开以后,首先会调用ZDO_SyncIndicationCB( type, shortAddr );

这个函数里面会发送ZDApp_SendMsg( ZDAppTaskID, ZDO_NWK_JOIN_REQ, sizeof(osal_event_hdr_t), NULL );给ZDO层。

在下面处理这个消息

case ZDO_NWK_JOIN_REQ: if ( ZG_BUILD_JOINING_TYPE && ZG_DEVICE_JOINING_TYPE ) { retryCnt = 0; devStartMode = MODE_RESUME; _tmpRejoinState = true; osal_cpyExtAddr( ZDO_UseExtendedPANID, _NIB.extendedPANID ); zgDefaultStartingScanDuration = BEACON_ORDER_60_MSEC; ZDApp_NetworkInit( 0 ); } break;

在上面把节点改成resume,然后初始化节点,

zgDefaultStartingScanDuration = BEACON_ORDER_60_MSEC;是orphan在每个信道广播的时间

——————————–

if ( events & ZDO_NETWORK_INIT ) { // Initialize apps and start the network devState = DEV_INIT; osal_set_event( ZDAppTaskID, ZDO_STATE_CHANGE_EVT );

ZDO_StartDevice( (uint8)ZDO_Config_Node_Descriptor.LogicalType, devStartMode, DEFAULT_BEACON_ORDER, DEFAULT_SUPERFRAME_ORDER );

// Return unprocessed events return (events ^ ZDO_NETWORK_INIT); }

———————————–

在ZDO_StartDevice里面,然后调用

NLME_OrphanJoinRequest( zgDefaultChannelList, zgDefaultStartingScanDuration );发送orphan notification,

然后然后,你可以再跟踪下到什么时候再去发送beacon了。。。。。

赞(0)
未经允许不得转载:TI中文支持网 » 终端位置变化后,从发出孤立广播到开始重新关联耗时约5s,能否调整协议栈加快重新关联操作
分享到: 更多 (0)