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

CC2530: Ztack3.0.2中,协调器第二次开放网络许可,设备无法入网问题

Part Number:CC2530

Ztack协议栈版本号为3.0.2

在协调器复位后,第一次打开入网许可至结束的区间内,设备均可以正常入网、退网、再次入网

在协调器网络关闭后,再次打开网络,设备无法成功入网

其次,在ZDObject.c,ZDO_ProcessMgmtPermitJoinReq( zdoIncomingMsg_t *inMsg )中

每次有设备入网均会执行函数ZDO_ProcessMgmtPermitJoinReq( zdoIncomingMsg_t *inMsg )

该函数内会刷新网络开放时间,stat = (byte) NLME_PermitJoiningRequest( duration )

请问这么设计的目的是什么,如果我将该行注释掉,不刷新网络开放时间会如何?

以下为抓包结果

流程:第一次网络开放–>设备入网–>网络关闭–>设备退网–>第二次网络开放–>设备入网失败

第二次打开网络失败.zip

Cherry Zhou:

您好我们已收到您的问题并升级到英文论坛寻求帮助,如有答复将尽快回复您。谢谢!

,

qh h:

补充:如果我这边周期调用NLME_PermitJoiningRequest( duration )刷新网络开放时间,设备可以保持入网

只有在第一次网络关闭后,第二次打开才会入网失败。

问题可能出在第二次打开入网许可需要做什么额外的操作?

请问一下,我这类问题有没有相关的手册可以查询解答?

,

YiKai Chen:

设备退网后,你设备有做factory reset擦除NV內的网路資訊嗎?

,

qh h:

子设备吗,调用的是bdb_resetLocalAction()而后reset

第一次开放网络未关闭前,反复入网都是可以的

,

YiKai Chen:

對,我說的是子设备,請問你用原始sample ligh/switch做測試會有這樣的狀況嗎?

,

qh h:

也会出现这个状况

基于原始的代码

1.UI_相关部分移除

2.在zclSampleSw_Init()末尾添加

bdb_StartCommissioning( BDB_COMMISSIONING_MODE_NWK_FORMATION | BDB_COMMISSIONING_MODE_FINDING_BINDING );NLME_PermitJoiningRequest(60);osal_start_timerEx(zclSampleSw_TaskID, SAMPLEAPP_LCD_AUTO_UPDATE_EVT, 500000);

3.在zclSampleSw_event_loop()中添加

if ( events & SAMPLEAPP_LCD_AUTO_UPDATE_EVT ){NLME_PermitJoiningRequest(60);return ( events ^ SAMPLEAPP_LCD_AUTO_UPDATE_EVT );}

500秒后,第二次打开网络,入网失败

均是在第一次网络开放期间,同一设备可以反复入网,在第二次网络开放期间,没有设备可以入网

,

YiKai Chen:

你的SampleSw是當coordinator還是device?

,

qh h:

ztack3.0.2 SampleSW coordinate

,

YiKai Chen:

SampleSW當coordinator照理不應該在zclSampleSw_Init內都使用bdb_StartCommissioning( BDB_COMMISSIONING_MODE_NWK_FORMATION | BDB_COMMISSIONING_MODE_FINDING_BINDING ),這是coordinator沒有組網前才這樣調用,如果已經組網過了,應該直接調用bdb_StartCommissioning(0),建議你調整一下這部份再試試

,

qh h:

尝试了,设备无法入网,子设备Beacon Request没有收到Coordinator的Beacon

SampleSW作为Coordinator启动,第一步应当也是建立网络吧。我是通过刷FLASH重新测试的,所以每次都是重新组网

请问如果Coordinator在reset前已经完成了组网,在reset后该如何查看以便于我去调用组网/bdb_StartCommissioning(0)

,

YiKai Chen:

qh h said:通过刷FLASH重新测试的,所以每次都是重新组网

如果是這樣確實就要用bdb_StartCommissioning( BDB_COMMISSIONING_MODE_NWK_FORMATION | BDB_COMMISSIONING_MODE_FINDING_BINDING ),但是接著不應該直接調用NLME_PermitJoiningRequest,應該是要等組網完成後再去permit join

赞(0)
未经允许不得转载:TI中文支持网 » CC2530: Ztack3.0.2中,协调器第二次开放网络许可,设备无法入网问题
分享到: 更多 (0)