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

z-stack 2.51如何对设备进行factory new?

给位好,

请教个问题,使用zstack 2.51的sampleapp进行修改开发,开启了nv_store功能,现在想要对设备进行factory new操作,请问应该调用那些函数。

我所谓的factory new操作包含以下这些内容

1. 清除网络状态,重启后应该重新建立网络(对协调器)或者重新选择网络加入(对非协调器)
2. 清除系统自身的一些变量,比如boot_counter等
3. 清除aps层生成的项目比如绑定表,路由表,组信息表等
4. 清除用户自定义的nv item

经过实验,我暂时用这个方法清除网络状态和数据:
zgWriteStartupOptions(ZG_STARTUP_SET, ZCD_STARTOPT_DEFAULT_NETWORK_STATE|ZCD_STARTOPT_CLEAR_CONFIG);
SystemReset();

但是使用此方法协调器重新建网后,有这样的问题:
1. 如果没有设备加网,遇到重启网络状态不会保存,会新建一个网络。这不是一个大问题,VV也在另一个帖子里解释过。但是如果重启后,我用串口改一下panid或者是channel,在再次重启前如果没有设备加入该网络,那么这次修改就会失败,这样似乎比较麻烦。
2. 绑定表不能被清除
3. 用户自定义的nv item不能清除,需要自己用 osal_nv_delete进行删除,比较麻烦

请问给位大神,到底该如何对设备进行factory new操作? 就考虑zstack 2.51,不涉及zll和zha,谢谢大家

Best regards,
Stockton

Stockton Zhang:

自己研究了,用删除nv item的方法手动删除绑定表,如下方法成功!!!

nv_status = osal_nv_delete(ZCD_NV_BINDING_TABLE, (uint16)(gBIND_REC_SIZE * (1 + gNWK_MAX_BINDING_ENTRIES)) );

赞(0)
未经允许不得转载:TI中文支持网 » z-stack 2.51如何对设备进行factory new?
分享到: 更多 (0)