请问Z-STACK协议栈中,在哪里修改能使zigbee终端断网之后不再重新连接协调器?
请问Z-STACK协议栈中,在哪里修改能使zigbee终端断网之后不再重新连接协调器?
因为终端是电池供电,设置为PM3模式,中断唤醒。如果协调器故障断电了,若此时唤醒终端,向协调器发送数据,协调器因断电没有开启,不能给终端返回应答信号,终端在之后会不断重新连接协调器,这样会非常费电池电量。所以我想关闭这种断网重连机制,请问该如何实现?或者该怎么解决这种问题? 请各位大大帮我解惑,十分感谢!
如果不想让节点不停的去搜索网络的话,可以extern uint8 ZDApp_StopJoiningCycle( void );,把搜索网络关掉,或者开一个定期把搜网的周期拉大
Susan Yang 您好:
好的,谢谢,我先尝试一下。
您也可以参考 论坛的置顶帖 http://www.deyisupport.com/question_answer/wireless_connectivity/zigbee/f/104/t/75525.aspx
问题4
Susan Yang 您好:
我尝试了一早上,实在是不知道ZDApp_StopJoiningCycle()这个函数添加到什么位置。按理说当终端中断唤醒后给协调器发送数据,协调器挂了没有应答,终端反复发送数据无果,就开始重新搜索网络。但是我现在找不到重新搜索网络的函数接口。请问此函数在什么位置添加比较合适呢? 也就是终端反复向协调器发送数据没收到应答,不重新连接协调器,完毕后直接休眠。
Susan Yang 您好:
请问终端在断网后,怎么停止继续想、搜索网络,uint8 ZDApp_StopJoiningCycle 函数应在什么位置添加较为适合?
在ZDO_StartDevice()函数中,加在这个判断句里面if (startMode == MODE_REJOIN && scanCnt++ >= 5 ),直接加一句ZDApp_StartJoiningCycle();就可以了
抱歉写错了,加的应该是ZDApp_StopJoiningCycle();
xu zhang7 您好:
尝试了加了一下,发现没有起到作用,下一次不能加入到协调器。LED隔一秒闪一下,测了功耗,LED灭的情况下2.2UA 亮的情况170UA
@Xu,
uint8 ZDApp_StopJoiningCycle( void )是停止网络搜索,
当你需要加网的时候需要通过 uint8 ZDApp_StartJoiningCycle( void )打开。
你测试的功耗2.2uA,说明已经没有在搜网了,不然功耗没有那么低
V V说的是对的,我也是这样做的。确实ZDApp_StartJoiningCycle()和ZDApp_StopJoiningCycle()一般是配套使用的。建议楼主能搞清楚入网,断网重连等的具体流程,这样你就可以根据自己的需要去修改协议栈实现自己的功能。
按照问题4来更改增加重连接时间,重连接时间确实增加了,但是在这个增加的时间内,单片机一直是以最大功耗在运行。怎么办?
断线后不是应该,让他尽快的连回来吗?而不是如何降低来减少功耗,若能及时连回来,不就不存在由于不断找网而增加功耗的问题了吧。
我碰到的问题是终端,一直重连,但一直连不上,复位后连上的概率就大很多了,但依然还有的连不上。请问该怎么处理呢,什么导致掉线连不上呢?网络重新初始化还是连不上呢?硬件重启好了很多,为什么还有少数连不上的呢
你好,我你的这个方法实现了终端停止搜索网络的功能,但是我想在终端停止搜索网络后,就进入5秒的睡眠,然后就再次进入搜索网络,该怎么做呢?感激不尽
你的问题解决了吗?我遇到相同的问题
我也想这样做,请问实现了吗?