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

ZLL关于zll_IsFactoryNew的问题

1、ZLL的【!zll_IsFactoryNew】是否是以入网成功分配到短地址来算的吗?代码里是通过读NV比较nwkAddr == INVALID_NODE_ADDR是否为FFFE来判断的,是不是说nwkAddr不等于INVALID_NODE_ADDR就代表ZLL已经入网,不是FactoryNew了?

2、实验(HA + ZLL):已有zigbee网络A存在(HA网关,当作干扰网络,permitjoin=0xff);不断复位ZLL(设置为固定panid与网络A的panid不同,xHOLD_AUTO_START);

发现ZLL会进入【!zll_IsFactoryNew】的代码,调用NLME_GetRequest( nwkNwkState, 0, &state ),发现state=0x08。这样ZLL就出现了既没有正确入网,又认为自己已不是FactoryNew的设备,从而导致即使重新复位也不再发送beacon req的问题。

难道ZLL可以加入到与自身不同的panid的网络吗?

(Z-Stack Lighting 1.0.2原始代码测试。使能了NV_RESTORE就会出现这个现象,xNV_RESTORE就不会出现)

3、HA网关发送ZDP_MgmtLeaveReq命令使ZLL离开网络后,ZLL如何重新搜网入网呢?ZLL搜网入网的前提必须是FactoryNew吗?

望各位好友们不吝赐教!

VV:

1, 是的,你也可以通过代码来理解

bool zll_IsFactoryNew( void ){ uint16 nwkAddr = INVALID_NODE_ADDR;

osal_nv_read( ZCD_NV_NIB, osal_offsetof( nwkIB_t, nwkDevAddress ), sizeof( uint16), &nwkAddr );

// Does the NIB have anything more than default? return ( nwkAddr == INVALID_NODE_ADDR ? TRUE : FALSE );}

2,你抓个包就一清二楚了。

3,你说的搜索网络是指classic join的方式去搜索网络额,还是通过touchlink方式去跟其他的设备配对?

小白杨:

回复 VV:

@vv

是通过抓包和debug发现这个问题的。classic join入网方式。

HA网关设置PANID=0x1234,ZLL设置PANID=0x1235,PANID不同,发现ZLL加入了HA网关。

classic join加网方式。

VV:

回复 小白杨:

能不能把抓包文件另外为,用附件上传啊

另外你的PANID是在哪里设置的啊?

赞(0)
未经允许不得转载:TI中文支持网 » ZLL关于zll_IsFactoryNew的问题
分享到: 更多 (0)