终端休眠定时唤醒(PM2) 期间断网无法恢复怎么回事,不休眠的情况 可以恢复。
终端休眠定时唤醒(PM2) 期间断网无法恢复怎么回事,不休眠的情况 可以恢复。
你是否基于协议栈开发?你是自己用程序在控制设备进入PM2吗?终端设置了POLL_RATE, 终端会周期性唤醒与父节点交互数据。
是基于协议栈开发,是自己控制设备进入PM2,抓包发现,定时休眠中间断网,终端会发一分多钟的信标然后就不在发送信标请求,是怎么回事呀?
不发信标后发了后边一些乱七八糟的东西,您给看看!@!
在吗 TY?你看看我的问题!
后面那个长帧是zigbee的帧。 是你发了beaconrequest,周边节点回的。
不需要自己控制进入PM2,本身有PM管理。如下文章可以看看
http://www.deyisupport.com/question_answer/wireless_connectivity/zigbee/f/104/p/105541/282780.aspx#282780
重新入网时,有backoff的机制,即一段时间没加进去,就停止加入,并退后一段时间,然后在开始加入过程。
参考手册的7. Portable Devices
函数是
ZDApp_SetRejoinScanDuration() and ZDApp_SetRejoinBackoffDuration().
你好TY!ZDApp_SetRejoinScanDuration() and ZDApp_SetRejoinBackoffDuration().这两个函数我在协议栈没找到?是新版本的才有的吗?老版本没有吗?
是的。这是新增加的功能。
你好TY,现在问题是终端断网后(把协调器断电)终端一直发送信标,协调器从新插电,终端无法入网一直发信标 我的加了NV_RESTORE预编译项,怎么回事啊?怎么解决呀?
协调器端也有NV_RESTORE对吧,这个没问题每次都能够复现吗?
另外你在节点做下下面额改动
void ZDApp_NetworkInit( uint16 delay ) { + if ( devStartMode == MODE_REJOIN ) + { + _tmpRejoinState = true; + } if ( delay ) { // Wait awhile before starting the device osal_start_timerEx( ZDAppTaskID, ZDO_NETWORK_INIT, delay ); } else { osal_set_event( ZDAppTaskID, ZDO_NETWORK_INIT ); } }
你好VV我的协调器也加了NV_RESTORE啦,你给的建议,我在一篇英文网页里看到过也加了,但是还是不行,断网后,终端一直发信标,但是协调器恢复网后没有ACK应答,结果终端一直发信标无法恢复入网,您给分析下吧!
void ZDApp_NetworkInit( uint16 delay ) { + if ( devStartMode == MODE_REJOIN ) + { + _tmpRejoinState = true; + } if ( delay ) { // Wait awhile before starting the device osal_start_timerEx( ZDAppTaskID, ZDO_NETWORK_INIT, delay ); } else { osal_set_event( ZDAppTaskID, ZDO_NETWORK_INIT ); } }
已解决
请问怎么解决的
你好,最近也是断网后无法恢复,也不休眠请问怎么解决啊?求指教