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

ZSTACK 3.0.2网络相关问题

协调器基于switch例程,终端基于light例程

1.终端加上协调器后,等一会把终端复位,

发现终端再也入不了网了,此时我通过按键触发,

协调器端触发bdb_StartCommissioning(BDB_COMMISSIONING_MODE_NWK_FORMATION | BDB_COMMISSIONING_MODE_FINDING_BINDING);

终端触发bdb_StartCommissioning(BDB_COMMISSIONING_MODE_NWK_STEERING | BDB_COMMISSIONING_MODE_FINDING_BINDING);

终端还是无法入网

2.关于终端当前的状态,是否在线,是用ZDO_STATE_CHANGE判断还是用zclSampleSw_ProcessCommissioningStatus

如果用zclSampleSw_ProcessCommissioningStatus,怎么判断终端是否掉线?

3.协调器和终端恢复出厂用什么接口函数?

Jesse Huang:

1、终端即使在入网后每次复位还是要调用 bdb_StartCommissioning()。
2、终端可在 zclSampleSw_ProcessCommissioningStatus() 中的 case BDB_COMMISSIONING_PARENT_LOST: 中判断掉线了。
3、恢复出厂设置调用 bdb_resetLocalAction() 函数。

YiKai Chen:

1. 你終端有使能NV_RESTORE嗎?

2. 建議用ZDO_STATE_CHANGE

3. 用bdb_resetLocalAction

user5367314:

回复 YiKai Chen:

1.协调器和终端都使能了NV_INIT和NV_RESTORE
2.协调器按键里面调用的是bdb_StartCommissioning(BDB_COMMISSIONING_MODE_NWK_FORMATION | BDB_COMMISSIONING_MODE_NWK_STEERING | BDB_COMMISSIONING_MODE_FINDING_BINDING);
3.bdb_resetLocalAction和下面的函数功能是一样的吧?是不是factory reset?
zgWriteStartupOptions( ZG_STARTUP_SET, (ZCD_STARTOPT_DEFAULT_NETWORK_STATE | ZCD_STARTOPT_DEFAULT_CONFIG_STATE) );SystemResetSoft();
4.现在正常组网后,等一段时间把终端复位,复位后就加不上了,我在协调器和终端双方都触发了bdb_StartCommissioning也是加不上
5.我把协调器断电,3.0.2协议栈默认的,终端是不是会一直重连?

Jesse Huang:

回复 user5367314:

对了,Z-Stack 3.0.2 的终端是不会主动发送 rejoin request 的,要在 zclSampleSw_ProcessCommissioningStatus() 中的 case BDB_COMMISSIONING_PARENT_LOST: 中调用 rejoin request 函数。case BDB_COMMISSIONING_PARENT_LOST:{if(bdbCommissioningModeMsg->bdbCommissioningStatus == BDB_COMMISSIONING_NETWORK_RESTORED){
}else{// Parent not found, attempt to rejoin again after a fixed delayosal_start_timerEx(Cursor_TaskID, EVENT_END_DEVICE_REJOIN, END_DEVICE_REJOIN_DELAY);}}break;
在 zclSampleSw_ProcessEvent 中:// 设备失去父节点消息后定期发送rejoinif( events & EVENT_END_DEVICE_REJOIN ){bdb_ZedAttemptRecoverNwk();return (events ^ EVENT_END_DEVICE_REJOIN);}

user5367314:

回复 Jesse Huang:

我这边试了,把协调器断电再上电,终端会自动连上的,
是不是开启了NV的原因?
需要加bdb_ZedAttemptRecoverNwk吗?

Jesse Huang:

回复 user5367314:

你协调器断电,终端掉线后,协调器再上电,终端在不调用 bdb_StartCommissioning 的情况下能自动连上吗?

YiKai Chen:

回复 user5367314:

是因為开启了NV、應該不用加bdb_ZedAttemptRecoverNwk

user5367314:

回复 Jesse Huang:

可以,我两边都开启了NV,重启协调器,终端会自动连上,终端没有调用bdb_StartCommissioning

user5367314:

回复 YiKai Chen:

1.加入终端或者协调器由于某种原因NV信息在上电的时候没有恢复成功,
保险起见,是不是建议在终端里加个bdb_ZedAttemptRecoverNwk?
2.现在正常组网后,等一段时间把终端复位(即调用bdb_resetLocalAction),复位后就加不上协调器了,我在协调器和终端双方都触发了bdb_StartCommissioning也是加不上,请问是什么原因?如何解决?

YiKai Chen:

回复 user5367314:

那你的問題是?

赞(0)
未经允许不得转载:TI中文支持网 » ZSTACK 3.0.2网络相关问题
分享到: 更多 (0)